我的数据库中有大约100个临时存储过程。如何快速删除所有存储过的具有' tempZZZ'在他们的名字?
答案 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;