[英]SQL Server Stored Procedure - Return varchar id of inserted row
I'm working on a cascading insertion where a stored procedure should return an id of the inserted row. 我正在级联插入,其中存储过程应返回插入行的ID。 This would not be a problem if the id of the table was an int. 如果表的ID为int,这将不是问题。 However, the id is a varchar
and therefore I cannot use SCOPE_IDENTITY()
. 但是,该id是varchar
,因此无法使用SCOPE_IDENTITY()
。
This is my procedure so far: 到目前为止,这是我的程序:
CREATE PROCEDURE NEW_ARTICLE
@id varchar(50) OUTPUT,
@name varchar(100),
@articleNr varchar(50),
@gategory varchar(50),
@containerId varchar(50),
@contPerContainer int,
@pictureId varchar(50)
AS
SET NOCOUNT OFF
INSERT INTO nextlabel.[Article] (name, article_nr, category, container_id, count_per_container, picture_id )
VALUES (@name, @articleNr, @gategory, @containerId, @contPerContainer, @pictureId)
SET @id = SCOPE_IDENTITY()
Where the last row is not correct since the column id
is a varchar
. 由于列id
为varchar
因此最后一行不正确。
How can I return the id
? 如何返回id
?
Try this: 尝试这个:
CREATE PROCEDURE NEW_ARTICLE
@id varchar(50) OUTPUT,
@name varchar(100),
@articleNr varchar(50),
@gategory varchar(50),
@containerId varchar(50),
@contPerContainer int,
@pictureId varchar(50)
AS
SET NOCOUNT OFF
SET @id = newid()
INSERT INTO nextlabel.[Article] (id, name, article_nr, category, container_id, count_per_container, picture_id)
VALUES (@id, @name, @articleNr, @gategory, @containerId, @contPerContainer, @pictureId)
GO
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.