我有多个表在列检查约束中使用标量函数。某些表在多个列中使用相同的函数。这些约束显然都有不同的名称。
我需要更改此函数,但首先我必须删除引用它的所有约束。
是否可以根据函数名称获取引用此函数的表和列的列表作为约束?
在理想的世界中,约束的名称都将包含它们引用的函数的名称,但遗憾的是,我的数据库不是这种情况。
你可以使用这个脚本:
select s.name as constraintName,c.name as ColName,o.name as TableName
from sys.check_constraints s
join sys.all_columns c on s.parent_object_id=c.object_id and s.parent_column_id=c.column_id
join sys.objects o on o.object_id=c.object_id
where s.definition like '%your function name%'