T使用T-Sql中的用户定义数据类型标识所有存储过程和表



我使用的是SSMS,我有一个用户定义的数据类型,它创建于2000年初,附带了一个规则对象。

许多表和存储过程都将此用户定义的数据类型用作类型。我想更改这些表和存储的proc来去掉这个UDT,这样我就可以用检查约束来替换它们,但我很难识别所有将这个UDT用作类型的表和存储proc。

我一直在查看旧的脚本,并使用sp_help table_name来查找这些实例,但我想知道是否有办法找到使用特定用户定义数据类型的所有表/列和存储的proc。

谢谢。

EDIT:我知道如何在表上找到用户定义数据类型的所有用途

SELECT TABLE_NAME, COLUMN_NAME, DOMAIN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DOMAIN_NAME = 'UDT_name'

对于存储过程,我删除了我发现的方法,因为NicVerAZ在下面链接了一种更好的方法来实现这一点。

请参阅下面关于如何在存储过程定义中正确搜索字符串的文章:

在SQL Server 中搜索存储过程中的文本

正如我在上面的评论中所说,ROUTINE_DEFINITION是一个NVARCHAR(4000(,较长的存储过程的定义被截断。

你的第二种方法还不错,它完成了,但是的,你的第一种方法更正确。

最新更新