【发布时间】:2013-05-24 07:13:24
【问题描述】:
在 SQL Server 中执行以下语句
IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[SP_CandidateRegistration]') AND type in (N'P', N'PC'))
BEGIN
CREATE PROCEDURE [dbo].[SP_CandidateRegistration]
(
@UserName VARCHAR(50),
@Password VARCHAR(50),
@EmailID VARCHAR(50),
@TestId int,
@IsActiveUser INTEGER,
@USER_ID INTEGER OUTPUT
)
AS
DECLARE @UserName VARCHAR(50)
DECLARE @Password VARCHAR(50)
DECLARE @EmailID VARCHAR(50)
DECLARE @TestId int
DECLARE @IsActiveUser INTEGER
DECLARE @USER_ID INTEGER
INSERT INTO [dbo].[IER_CandidateRegistration](User_Name, Password, EmailId, Test_Id, is_active )
VALUES (@UserName, @Password, @EmailID,@TestId, @IsActiveUser)
select @USER_ID=@@identity
RETURN
END
GO
在 SQL Server 2008 中执行后出错
消息 156,第 15 级,状态 1,第 3 行
关键字“PROCEDURE”附近的语法不正确。
【问题讨论】:
-
附注:您应该不为您的存储过程使用
sp_前缀。微软有reserved that prefix for its own use (see Naming Stored Procedures),你确实会在未来某个时候冒着名称冲突的风险。 It's also bad for your stored procedure performance。最好只是简单地避免sp_并使用其他东西作为前缀 - 或者根本不使用前缀!
标签: sql sql-server-2008 stored-procedures