ALTER TABLE 只允许添加可包含空值或指定了 DEFAULT 定义的列。
如果:
IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE NAME = N'tab_test') AND NOT EXISTS(SELECT 1 FROM SYSOBJECTS A, SYSCOLUMNS B WHERE B.ID = A.ID AND B.NAME = N'col_test' and a.name = N'tab_test')
alter table tab_test
add col_test smallint NOT NULL
GO
将会收到错误信息。
要增加非空列怎么办呢?
第1种办法:在add column时指定列有default
alter table tab_test
add col_test NOT NULL CONSTRAINT DFtab_test_col_test DEFAULT 1
第2种办法:先给表增加个table_constraint default,再alter column
alter table tab_test
add CONSTRAINT DFtab_test_col_test DEFAULT 1 for col_testalter table tab_test
alter column col_test int NOT NULL
第3种办法:只好先增加空列,在修改为非空啦:
IF EXISTS(SELECT 1 FROM SYSOBJECTS WHERE NAME = N'tab_test') AND NOT EXISTS(SELECT 1 FROM SYSOBJEC
sqlserver设置非空列
最新推荐文章于 2024-10-10 23:12:01 发布
在SQL Server中,直接使用ALTER TABLE添加非空列会导致错误。可以采取三种方法来实现:1) 在ADD COLUMN时指定默认值约束;2) 先添加默认值约束,再修改列非空;3) 先添加空列,然后修改为非空。具体语法和操作步骤在内容中有详细说明。
摘要由CSDN通过智能技术生成