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_namefrom 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