sql - 如何检查默认值约束是否存在?

标签 sql sql-server-2008

我正在使用 SQL Server 2008。我需要查找是否不存在默认值约束,然后创建它。这是我尝试过的。

IF (NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.REFERENTIAL_CONSTRAINTS WHERE CONSTRAINT_NAME ='MyConstraint'))
BEGIN
    ALTER TABLE [XX] ADD  CONSTRAINT [MyConstraint]  DEFAULT ((-1)) FOR [XXXX]
END
GO

最佳答案

if not exists (
    select *
      from sys.all_columns c
      join sys.tables t on t.object_id = c.object_id
      join sys.schemas s on s.schema_id = t.schema_id
      join sys.default_constraints d on c.default_object_id = d.object_id
    where t.name = 'table'
      and c.name = 'column'
      and s.name = 'schema')
  ....

关于sql - 如何检查默认值约束是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13818837/

相关文章:

mysql - LIKE 子句中的 SQL 注入(inject)攻击

php - MySQL 查询 - 在结果中生成数组

mysql - MySQL 5.1 上的 GROUP BY 日期无泄漏 SQL

sql - 使用数组一次将3个表中的数据插入Postgresql数据库

sql-server - 在存在语句中使用表变量

sql - 如何在数据库中导致超时异常?

c# - 如何在 C# 中访问特定日期的 sql server 2008 表中的数据?

sql-server-2008 - 如何在多用户模式下重命名数据库

sql - 列出 SQL 中每个字段值的行数

sql - 返回 ID NOT IN 某表的结果