J'ai un peu de difficulté avec celui-ci en ce sens que je ne suis pas sûr de savoir comment le faire dans SQL Server.Sortie dernière valeur de clé primaire insérée à partir de la procédure stockée
Fondamentalement, je veux insérer une nouvelle ligne dans la base de données, obtenir la valeur de PK qui vient d'être inséré (même requête) et exportez le résultat à tout appelé la procédure stockée:
CREATE PROCEDURE Users_Insert
-- Add the parameters for the stored procedure here
@userid int output,
@name varchar(50),
@surname varchar(50),
@email varchar(200),
@password varchar(50),
@location varchar(50)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
insert into Users(FirstName, LastName, Email, Password, Location)
values(@name, @surname, @email, @password, @location);
GO
@userid = @@IDENTITY;
END
J'ai fait dans MySQL comme suit:
CREATE PROCEDURE Users_Insert(@userid int output, @name varchar(50), @surname varchar(50), @email varchar(200), @password varchar(50), @location varchar(50)
BEGIN
insert into Users(FirstName, LastName, Email, Password, Location)
values(@name, @surname, @email, @password, @location);
set @userid = last_insert_id();
END
SQL Server me donne une erreur:
Msg 102, Level 15, State 1, Procedure Users_Insert, Line 18
Incorrect syntax near '@userid'.
Fra nkly, je ne suis pas sûr que j'ai déclaré le paramètre de sortie correctement, quelqu'un peut-il offrir des suggestions?
Sélectionnez SELECT @ userid = SCOPE_IDENTITY(); et enlever aller n'est pas nécessaire. –
marc_s n'aime pas mon typage paresseux: P – Ortund