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

问题描述 投票:0回答:1

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

我需要更改此函数,但首先我必须删除引用它的所有约束。

是否可以根据函数名称获取引用此函数的表和列的列表作为约束?


在理想的世界中,约束的名称都将包含它们引用的函数的名称,但遗憾的是,我的数据库不是这种情况。

sql-server
1个回答
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%'
© www.soinside.com 2019 - 2024. All rights reserved.