重要的SQL Server语句/搜索

在本文中,我想分享一些重要的搜索,例如搜索存储过程中使用的表以及搜索存储过程中使用的表和视图的列表。

1)列出包含表的存储过程。

SELECT DISTINCT syso.name FROM syscomments sysc INNER JOIN sysobjects syso ON sysc.id= syso.id WHERE sysc.TEXT LIKE '%tablename%' and upper(xtype)='P'

在这里,此查询将使用给定的表返回所有存储过程。

注意:在上面的查询中,将表名替换为:tablename。

什么是syscomments对象?

视图,规则,默认值,触发器,CHECK约束,DEFAULT约束和存储过程的实际代码存储在syscomments表中。 syscomments表中的TEXT列包含所有这些对象的实际代码。 知道这一点后,您就可以编写一些简单的T-SQL代码,这些代码可以扫描syscomments表以查找我们想要搜索的实际表列名或数据库对象名。

2)列出存储过程中使用的表。

从sysobjects中选择名称,其中id在

(select sd.depid from sysobjects so, sysdepends sd  
where so.name = 'usp_Your_Stored_Procedure' and sd.id = so.id ) and upper(xtype) = 'U'
该语句将列出给定存储过程中使用的所有表。 (在我们的示例中,其为“ usp_Your_Stored_Procedure”)

注意:这将仅返回此过程中使用的表。

如果您还想获取视图,则必须使用以下查询。


select name from sysobjects where id in 
(select sd.depid from sysobjects so, sysdepends sd  
where so.name = 'usp_getRepReport_by_OU' and sd.id = so.id ) and upper(xtype) in ('U','V')
我希望这有助于调试作为支持开发人员的较大的现有应用程序。

谢谢

巴拉斯·雷迪VasiReddy

高级软件工程师(RBC)

From: https://bytes.com/topic/sql-server/insights/889408-important-sql-server-statements-searchs

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值