2009年3月21日星期六

SQLServer之查找column上的constraint

SQLServer如果column有default value, 竟然会自动创建一个constraint, 名字是随机取的,因此drop column前要先drop这些constraint, 但是知道有哪些关联constraint可不容易:

select
col.name,
col.column_id,
col.default_object_id,
OBJECTPROPERTY(col.default_object_id, N'IsDefaultCnst') as is_defcnst,
dobj.name as def_name
from sys.columns col
left outer join sys.objects dobj
on dobj.object_id = col.default_object_id and dobj.type = 'D'
where col.object_id = object_id(N'dbo.dsyh858375307642')
and dobj.name is not null

没有评论: