【发布时间】:2014-10-22 17:13:59
【问题描述】:
我需要识别在数据库中任何地方(存储过程、视图等)中提到的表。我试图在网上找到一个查询,但找不到它。任何帮助都会很棒!
【问题讨论】:
标签: sql sql-server sysobjects
我需要识别在数据库中任何地方(存储过程、视图等)中提到的表。我试图在网上找到一个查询,但找不到它。任何帮助都会很棒!
【问题讨论】:
标签: sql sql-server sysobjects
我在查找依赖项时经常使用这个 sn-p。在这种情况下,您可以将文本替换为您正在搜索的内容(假设您使用的是 MS SQL Server):
USE [DBNAME]
SELECT OBJECT_NAME(id)
FROM syscomments
WHERE [text] LIKE '%enter_search_here%'
GROUP BY OBJECT_NAME(id)
您还可以通过添加对象属性检查来查找特定对象类型:
WHERE OBJECTPROPERTY(id, 'IsTable') = 1
这是一个LIST 有用的对象属性!
【讨论】:
syscomments 的两个问题:(1) 它是一个向后兼容的视图,已被弃用,不应使用(改用 sys.sql_modules),(2) 它破坏了程序 > 4000跨多行的字符,因此它可能会因为您的搜索词落在边界上而错过程序。 See this post.
我使用 MS Management Studio 的免费 SQL 搜索插件来处理类似的事情:http://www.red-gate.com/products/sql-development/sql-search/
【讨论】: