在SSMS中删除几个存储过程

时间:2014-09-17 14:25:35

标签: sql-server sql-server-2012

我的数据库中有大约100个临时存储过程。如何快速删除所有存储过的具有' tempZZZ'在他们的名字?

2 个答案:

答案 0 :(得分:1)

一种方法是让SQL Server使用系统表生成SQL:

SELECT 'DROP PROCEDURE ['+name+']'
FROM sys.procedures
WHERE name LIKE '%tempZZZ%'

然后将其输出粘贴到SSMS窗口并运行它。如果您有不同模式的过程,则可能需要修改它。

警告:确保在运行之前检查输出!

答案 1 :(得分:1)

    DECLARE @sql NVARCHAR(MAX) = N'';

    SELECT @sql += N'DROP PROCEDURE dbo.'
      + QUOTENAME(name) + ';
    ' FROM sys.procedures
    WHERE name LIKE N'tempZZZ%'
AND
     SCHEMA_NAME(schema_id) = N'dbo';

    EXEC sp_executesql @sql;