查找所有引用函数的表列约束

时间:2019-04-24 10:15:35

标签: sql-server

我有多个表在列的检查约束中使用标量函数。有些表在多列中使用相同的功能。这些约束显然都有不同的名称。

我需要更改此功能,但是首先必须删除所有引用该功能的约束。

是否有可能基于函数名称获取引用此函数作为约束的表和列的列表?


在理想情况下,约束的名称都将包含它们引用的函数的名称,但是不幸的是,对于我的数据库,情况并非如此。

1 个答案:

答案 0 :(得分:0)

您可以使用此脚本:

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%'