我想修改表a某列的数据类型
但该列有一默认约束,所以必须删除该约束才能修改
测试了一下约束名有可能发生变化(即在a机器上为DF__tb_studen__isCad__300F11AC,但在b机器上为
DF__TB_Studen__isCad__7A721B0A )请问如何动态删除该约束???
但该列有一默认约束,所以必须删除该约束才能修改
测试了一下约束名有可能发生变化(即在a机器上为DF__tb_studen__isCad__300F11AC,但在b机器上为
DF__TB_Studen__isCad__7A721B0A )请问如何动态删除该约束???
--查询约束
select * from INFORMATION_SCHEMA.CONSTRAINT_TABLE_USAGE
where table_name='AA'select * from INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE
where Table_name ='AA'select * from INFORMATION_SCHEMA.CHECK_CONSTRAINTS
where constraint_name ='CK_AA'declare @csname varchar(2000)set @csname = 'CK_AA'--禁用约束
exec ('alter table AA nocheck constraint ' + @csname)
--启用约束
exec ('alter table AA check constraint ' + @csname)
请问 ck_AA如何的到?
因为牵涉到已有系统升级所以表不可能重建
set @csname=''select @csname=[name] --约束名称
from sysobjects t
where id=(select cdefault from syscolumns where id=object_id(N'表名') and name='字段名')--删掉约束
exec('alter table 表名 drop constraint '+@csname)
--禁用约束
exec ('alter table 表名 nocheck constraint ' + @csname)
--启用约束
exec ('alter table 表名 check constraint ' + @csname)