我已經構建了一個過程,該過程應該將新行插入到表中並返回其ID。使用OUTPUT子句的SQL過程不返回值
CREATE PROCEDURE [InsertFood]
AS
DECLARE @ID TABLE (foodId INT)
insert into TblFood
OUTPUT INSERTED.foodId INTO @ID(foodId)
default values
select * from @ID
return
當我運行這個程序,它總是返回0。
我已經構建了一個過程,該過程應該將新行插入到表中並返回其ID。使用OUTPUT子句的SQL過程不返回值
CREATE PROCEDURE [InsertFood]
AS
DECLARE @ID TABLE (foodId INT)
insert into TblFood
OUTPUT INSERTED.foodId INTO @ID(foodId)
default values
select * from @ID
return
當我運行這個程序,它總是返回0。
閱讀本MSDN後提供例如:Retrieving Identity or Autonumber Values
例子:
CREATE PROCEDURE dbo.InsertCategory
@CategoryName nvarchar(15),
@Identity int OUT
AS
INSERT INTO Categories (CategoryName) VALUES(@CategoryName)
SET @Identity = SCOPE_IDENTITY()
CREATE PROCEDURE [InsertFood]
AS
DECLARE @ID int
--insert data in table Example
----INSERT INTO Production.Location (Name, CostRate, Availability, ModifiedDate)
----VALUES ('Damaged Goods', 5, 2.5, GETDATE());
--insert data in table
select @ID = SCOPE_IDENTITY()
return @ID
你可以使用Scope_Identity()獲取最後一個值。
@@ Identity的含義是什麼? – Nityuiop18
@ Nityuiop18 =你可以在這裏檢查http://technet.microsoft.com/en-us/library/ms187342.aspx –
當我試圖更新程序 – Nityuiop18
您確定所有列都接受默認值或可以爲空嗎?顯示'tblFood'的'create table'語句。列「0」的默認值是什麼?除了自動識別的foodId以外的每一列都有 –
。它看起來像這樣((0))每個colomn的NOT NULL – Nityuiop18