Falsche syntax bei das Schlüsselwort 'PROZEDUR'
Führen Sie die folgenden Anweisung in der 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
Fehler nach dem ausführen in SQL Server 2008
Msg 156, Level 15, State 1, Line 3
Falsche syntax bei das Schlüsselwort 'RETURN'.
- Side note: Sie sollten nicht verwenden Sie die
sp_
Präfix für Ihre gespeicherten Prozeduren. Microsoft hat vorbehalten, die mit einem Präfix für den eigenen Gebrauch (siehe Benennen von Gespeicherten Prozeduren), und Sie laufen Gefahr, einen name-clash-irgendwann in der Zukunft. Es ist auch schlecht für die gespeicherte Prozedur performance. Es ist am besten, einfach zu vermeidensp_
und verwenden Sie etwas anderes als ein Präfix - oder kein Präfix an alle!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die
CREATE
in einer untergeordneten charge, die nur kompiliert und ausgeführtIF NOT EXISTS
.Werden Sie brauchen, um die Fehler zu beheben in dem Verfahren zunächst (warum sind Sie versuchen, um Variablen zu deklarieren, die denselben Namen wie die Parameter auch verwenden
SCOPE_IDENTITY()
nicht@@IDENTITY
), aber so etwas wieDen
CREATE PROCEDURE
- Anweisung kann nicht kombiniert werden mit anderenTransact-SQL
- Anweisungen in einem einzelnen batch.Also,Sie haben zu tun, wie diese:-
Auch, Sie sind wieder der Deklaration der Variablen.
Versuchen Sie dies: