【发布时间】:2012-06-20 23:59:37
【问题描述】:
谁能告诉我是否有办法以编程方式确定 Micorosft SQL Server 数据库表字段是否存在 NULL 或 NOT NULL 约束?我需要这个,以便我可以部署一个可以安全地重新运行的补丁。所以我追求这样的东西(概念/伪代码):
IF (my_table COLUMN end_date HAS CONSTRAINT OF 'NOT NULL') ALTER TABLE my_table ALTER COLUMN end_date DATETIME NULL
因此,如果 my_table.end_date 尚未更改,我想将其从“NOT NULL”更改为“NULL”。我只是不确定括号中的部分应该是什么。
我知道如何查询 dbo.sysobjects 以获取现有字段、现有外键约束等(已经有几个线程),但我只是不确定如何专门检查 NULL/ NOT NULL 字段约束。任何帮助将不胜感激。
【问题讨论】:
-
只要检查 IS_NULLABLE 标志,就可以了
标签: sql sql-server database constraints