Sql server 2005 如何获取引用表的所有存储过程/函数/视图的列表?
我在数据库db1中有一个表table1 如何获取引用此表的所有存储过程/函数/视图的列表Sql server 2005 如何获取引用表的所有存储过程/函数/视图的列表?,sql-server-2005,Sql Server 2005,我在数据库db1中有一个表table1 如何获取引用此表的所有存储过程/函数/视图的列表 SELECT OBJECT_NAME(object_id) FROM sys.sql_modules WHERE definition LIKE '%table1%' 不可靠,因为相关列为nvarchar(4000),这意味着您可能找不到该表。是nvarchar(最大值) 请注意以下评论: 返回文件的前4000个字符 函数或的定义文本 如果函数或 存储过程未加密。 否则,返回NULL 以确保您获得完整的
SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE definition LIKE '%table1%'
不可靠,因为相关列为nvarchar(4000),这意味着您可能找不到该表。是nvarchar(最大值)
请注意以下评论:
返回文件的前4000个字符
函数或的定义文本
如果函数或
存储过程未加密。
否则,返回NULL
以确保您获得完整的
定义,查询
对象定义函数或
中的“定义”列
sys.sql_模块目录视图
不可靠,因为相关列为nvarchar(4000),这意味着您可能找不到该表。是nvarchar(最大值)
请注意以下评论:
返回文件的前4000个字符
函数或的定义文本
如果函数或
存储过程未加密。
否则,返回NULL
以确保您获得完整的
定义,查询
对象定义函数或
中的“定义”列
sys.sql_模块目录视图
你的文本字段呢syscomments@Anish:相同,nvarchar(4000)+请注意,这将返回包含文本“table1”的过程列表,该文本可能仅作为注释显示。然后,您必须检查每个文本字符串并确定该文本字符串的实际使用方式。。。但这仍然胜过手动检查每个存储过程。@Philip Kelley:是的,但即使这样,它仍然可能是相关的。当然,我希望可以使用%.table1%,因为我们总是使用schema。。。。没有?哦,当然。当您有同名的对象(例如,表和列)时,或者如果您有过于常见的名称(例如,我们所有的注释标题中都有“Author:”。幸运的是,我们没有“Author”表或列)。另一个不将主代理键列命名为“Id”的原因在每个表中…中的文本字段如何syscomments@Anish:相同,nvarchar(4000)+请注意,这将返回包含文本“table1”的过程列表,该文本可能仅作为注释显示。然后,您必须检查每个文本字符串并确定该文本字符串的实际使用方式。。。但这仍然胜过手动检查每个存储过程。@Philip Kelley:是的,但即使这样,它仍然可能是相关的。当然,我希望可以使用%.table1%,因为我们总是使用schema。。。。没有?哦,当然。当您有同名的对象(比如表和列)时,或者如果您有非常常见的名称(例如,我们所有的注释标题中都有“Author:”。幸运的是,我们没有“Author”表或列)。另一个不在每个表中命名主代理键列“Id”的原因。。。