SQL80001:不正确的语法:“Create Procedure”必须是批处理中的唯一语句

1 sql-server stored-procedures

当我尝试创建一个过程时,我收到一条错误消息:

SQL80001:不正确的语法:“Create Procedure”必须是批处理中的唯一语句

这是我的程序:

CREATE PROCEDURE [dbo].[USP_UserRoles_Select]
(
    @Rolename VARCHAR(30) = ''
)
AS
BEGIN
    Select ID,Name
    FROM
        AspNetRoles
    WHERE
        Name like  @Rolename +'%'
END
Run Code Online (Sandbox Code Playgroud)

错误是什么意思以及如何修复它?

Tar*_*zer 7

你只需要GO在你的CREATE PROCEDURE. 你上面还有其他东西,它需要在自己的批次中。因此,GO这是需要的。

GO
CREATE PROCEDURE [dbo].[USP_UserRoles_Select]
(
    @Rolename VARCHAR(30) = ''
)
AS
BEGIN
    Select ID,Name
    FROM
        AspNetRoles
    WHERE
        Name like  @Rolename +'%'
END
GO
Run Code Online (Sandbox Code Playgroud)

GO,如果有代码之后的剧本后,也需要END。该BEGINEND语句是多余所以批处理中的所有代码将存储过程的一部分。