如何在一个数据库中删除多个存储过程

Din*_*lla 3 database sql-server select stored-procedures sql-server-2008

我正在使用SQL Server2008。我有一个数据库Training,其中包含两种类型的存储过程,其名称以SP_V400_和开头spV400_。现在,我需要删除名称为prefix的存储过程spV400_

我试过这个命令

SELECT 'DROP PROCEDURE [' + SCHEMA_NAME(p.schema_id) + '].[' + p.NAME + '] GO'
FROM sys.procedures p  
WHERE p.name LIKE '%spV400%'
ORDER BY p.name
Run Code Online (Sandbox Code Playgroud)

但我收到一个错误:

消息102,级别15,状态1,第1行
'GO'附近的语法不正确。

Gre*_*ous 7

您最终不需要GO。

尝试这个:

SELECT 'DROP PROCEDURE [' + SCHEMA_NAME(p.schema_id) + '].[' + p.NAME + ']'
FROM sys.procedures p  WHERE p.name like 'spV400%'
ORDER BY p.name
Run Code Online (Sandbox Code Playgroud)

当然,这将为您提供输出中的SQL命令列表,您可以将其复制并粘贴到SSMS中并运行。