小编典典

SQL Server:如何检查某个字段是否具有``ULL''或``OT NULL''约束?

sql

有人可以让我知道是否可以通过编程方式确定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字段约束。任何帮助将非常感激。


阅读 175

收藏
2021-04-28

共1个答案

小编典典

您可以看一下INFORMATION_SCHEMA.COLUMNS

if (select IS_NULLABLE from INFORMATION_SCHEMA.COLUMNS 
    where TABLE_NAME='my_table' and COLUMN_NAME='end_date') = 'NO' 
begin
    ALTER TABLE my_table ALTER COLUMN end_date DATETIME NULL
end
2021-04-28