在SSMS中删除几个存储的进程



我的数据库中有大约100个临时存储的proc。如何快速删除名称中包含"tempZZZ"的所有存储进程?

    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;

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

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

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

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

最新更新