我需要将默认约束值从 0 更改为 1。这很容易完成:
ALTER TABLE table DROP CONSTRAINT X
ALTER TABLE table ADD CONSTRAINT X default (1) for table.column
问题是我不想每次在我的数据库上运行 modelupdate 时都删除并创建一个新的约束。这就是为什么我想在约束的值为 0 时运行此代码。
是否可以检查 SQL 中默认约束的值,如果可以,如何检查?
我需要将默认约束值从 0 更改为 1。这很容易完成:
ALTER TABLE table DROP CONSTRAINT X
ALTER TABLE table ADD CONSTRAINT X default (1) for table.column
问题是我不想每次在我的数据库上运行 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'
但是,这将返回您的默认值的字符串表示形式 - 而不是实际值本身(无论它是什么数据类型)。但这可能会帮助你找到你需要的东西
您可以从下面的 information_schema 视图中查看该列的默认值。
SELECT COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS where TABLE_NAME = 'TableName' and COLUMN_NAME = 'ColumnName'