sql - 我可以在 SQL Server 中的添加列语句中创建命名默认约束吗?

标签 sql sql-server constraints alter-table code-maintainability

在 SQL Server 中,我的表上有一个新列:

ALTER TABLE t_tableName 
    ADD newColumn NOT NULL

这会失败,因为我指定了 NOT NULL 而没有指定默认约束。该表不应有默认约束。

为了解决这个问题,我可以创建具有默认约束的表,然后将其删除。

但是,似乎没有任何方法可以指定默认约束应命名为该语句的一部分,因此我摆脱它的唯一方法是使用一个存储过程在sys.default_constraints 表。

对于可能经常发生的操作来说,这有点困惑/冗长。有没有人有更好的解决方案?

最佳答案

这应该有效:

ALTER TABLE t_tableName 
    ADD newColumn VARCHAR(50)
    CONSTRAINT YourContraintName DEFAULT '' NOT NULL

关于sql - 我可以在 SQL Server 中的添加列语句中创建命名默认约束吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3770015/

相关文章:

php - 如何使用 php 将 MySQL 数据类型名称转换为正则表达式?

mysql - 如何在 MySQL 中存储列表

sql - 从 SQL/SSRS 2005 中的每一行中选择最大日期的列名

.net - DataReader 基于名称的查找 - 到底发生了什么,导致它们比循环中基于序数的查找慢得多?

javascript - 级联删除不适用于 Breeze

ios - Xcode Storyboard - 将我对特定大小类的所有约束转换为 Any x Any 的约束

sql - INSERT INTO..SELECT..ON DUPLICATE KEYS 不明确的 ID

sql - 使用 JDBC 识别 SQL Server 版本

mysql - 创建自定义错误消息 MySQL

ios - 无法获取 UIView 大小