use*_*041 10 sql database sql-server stored-procedures sql-server-2008
有没有办法找到哪些存储过程在表中创建条目.比如说:
存储过程A在表A中
插入
存储过程B插入表A 存储过程C插入表B中
我想查询返回存储过程A和存储过程B的名称.
我现在得到了这个,但它所做的就是找到存储过程.我认为找到存储过程是一个很好的起点.
select schema_name(schema_id) as [schema],
name
from sys.procedures
where name like '%Item%' and name like '%Create%'
我正在使用Microsoft SQL 2008
JNK*_*JNK 12
您可以搜索sys.sql_modules包含所有过程和视图的文本:
SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules
WHERE definition LIKE '%TablenameIWanttoFind%'
Run Code Online (Sandbox Code Playgroud)
如果你确定的措辞,你可以搜索类似的东西 'INSERT INTO mytable'
该问题询问如何查找插入特定表的存储过程.
如果为多个选择引用了表,则搜索包含该名称的存储过程可能会带来很多误报.
sys.sql_dependencies不推荐使用,但在此处可能很有用,因为它包含一个is_updated也设置1为插入的标志.
SELECT QUOTENAME(OBJECT_SCHEMA_NAME(object_id)) + '.' + QUOTENAME(OBJECT_NAME(object_id))
FROM sys.sql_dependencies
WHERE referenced_major_id = OBJECT_ID('YourTable')
AND is_updated = 1
GROUP BY object_id
Run Code Online (Sandbox Code Playgroud)
小智 6
为什么不使用以下查询。
select O.name from sysobjects O
Join Syscomments C
on O.id=C.id
Where C.text like '%insert into%Table_name%'
Run Code Online (Sandbox Code Playgroud)
从这个查询中,您可以从字面上找到任何包含特定文本的过程。
| 归档时间: |
|
| 查看次数: |
23639 次 |
| 最近记录: |