3 sql sql-server constraints default-constraint
我需要将默认约束值从0更改为1.这可以通过以下方式轻松完成:
ALTER TABLE table DROP CONSTRAINT X
ALTER TABLE table ADD CONSTRAINT X default (1) for table.column
Run Code Online (Sandbox Code Playgroud)
问题是我每次在数据库上运行modelupdate时都不想删除并创建新约束.这就是为什么我想运行此代码,如果约束的值为0.
是否可以在SQL中检查默认约束的值,如果是,如何?
您可以找到默认约束的"定义",如下所示:
SELECT
DefaultConstraintName = df.name,
df.definition
FROM
sys.default_constraints df
INNER JOIN
sys.tables t ON df.parent_object_id = t.object_id
INNER JOIN
sys.columns c ON c.object_id = df.parent_object_id AND df.parent_column_id = c.column_id
WHERE
t.Name = N'YourTableNameHere'
AND c.Name = N'YourColumnNameHere'
Run Code Online (Sandbox Code Playgroud)
然而,这将返回默认值的字符串表示形式 - 而不是实际值本身(无论它是什么数据类型).但这可能会帮助您找到所需的东西