如何在SQL中删除一个表后检查存储过程的数量

时间:2014-12-26 07:48:04

标签: sql sql-server sql-server-2012

我正在使用SQL 2012。

我的项目中有大型数据库结构。 我的数据库中有大约10000个存储过程。

我必须从数据库中删除一个表,有没有办法可以通过删除我的表来直接检查多少存储过程会影响。

任何帮助都会得到满足。

4 个答案:

答案 0 :(得分:6)

使用sp_depends

EXEC sp_depends @objname = N'yourtablename'

答案 1 :(得分:1)

如果您使用的是SQL Server Management Studio,则可以右键单击表并选择"查看依赖关系"查看依赖对象

答案 2 :(得分:1)

1)程序,视图,功能,触发器,FK - 视图依赖性。 查看依赖项将为您提供在编译阶段引用该表的所有对象。

2)程序,视图,功能,触发器

select object_name(id),* 
from sys.syscomments 
where text like '%tableName%' 

将为您提供表名出现的对象的名称。这是一个字符串搜索。因此,如果它出现在注释或动态sql中,它也会被捕获。

***如果您正在使用从外部源接收表名的动态sql,那么这只能在执行阶段捕获。

3)工作 -

SELECT  *
FROM    msdb.dbo.sysjobs j
JOIN    msdb.dbo.sysjobsteps js
    ON  js.job_id = j.job_id 
WHERE   js.command LIKE N'%TableName%'

将在步骤代码中为您提供找到该表的作业的名称。这也是字符串匹配搜索。

答案 3 :(得分:0)

将数据库导入新的SSDT项目。

然后,您可以右键单击对象名称并使用"查找所有引用"。

如果动态SQL可能引用了文本字符串,您可能也会想要搜索所有文件中的文本字符串。