【发布时间】:2019-04-17 23:32:55
【问题描述】:
我正在使用 SSMS,并且我有一个用户定义的数据类型,它是在 2000 年初创建的,并附加了一个规则对象。
许多表和存储过程都使用这种用户定义的数据类型作为类型。我想更改这些表和存储过程以取出此 UDT,以便我可以用检查约束替换它们,但我无法识别使用此 UDT 作为类型的所有表和存储过程。
我一直在查看旧脚本并使用 sp_help table_name 来查找这些实例,但我想知道是否有办法找到所有使用某个特定的表/列和存储过程用户定义的数据类型。
谢谢。
编辑:我想出了如何在表上找到用户定义数据类型的所有用途
SELECT TABLE_NAME, COLUMN_NAME, DOMAIN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE DOMAIN_NAME = 'UDT_name'
对于存储过程,我删除了我发现的方法,因为 NicVerAZ 在下面链接了一个更好的方法来完成此操作。
【问题讨论】:
-
INFORMATION_SCHEMA.ROUTINES 不一定是最佳解决方案,因为 ROUTINE_DEFINITION 限制为 4000 个字符。
-
啊,我不知道。谢谢。我们的数据库中肯定有一些大型存储过程。我可能不能依赖它。
-
尝试封装。长期存储的过程不是一件好事。我看到过长得离谱的作品,这是一场噩梦。
标签: sql tsql user-defined-data-types