搜索引用某个对象的视图或者存储过程

有时我们知道一个SP的名字,想知道数据库中有哪些数据库对象对此SP有引用,如何做呢?
下面这段SP可能帮到你!

SET NOCOUNT ON
IF OBJECT_ID('tempdb..#') IS NOT NULL
	DROP TABLE #
CREATE TABLE #(
	DbName sysname,
	Owner sysname,
	Object sysname,
	xtype sysname,
	CreateDate datetime)

DECLARE @Search sysname, @sql nvarchar(4000)
SELECT @Search = N'Table_SoMaster',     -- 要查询的对象名
	@sql = N'
USE [?]
RAISERROR(N''Search on: ?'', 10, 1) WITH NOWAIT
INSERT #
SELECT N''?'', USER_NAME(O.uid), O.name, O.xtype, O.crdate
FROM sysobjects O, syscomments C
WHERE O.id = C.id
	AND O.status >= 0
	AND O.xtype IN (''P'',''V'',''FN'',''TF'',''IF'')
	AND C.text LIKE N''%' + @Search + N'%'''
EXEC sp_msforeachdb @sql
SELECT DbName, Owner, Object,
	xtype = CASE xtype
			WHEN 'P' THEN 'Procedure'
			WHEN 'V' THEN 'View'
			ELSE 'User Function' END,
	CreateDate
FROM #
SET NOCOUNT OFF




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值