是否有任何「簡單」方法來執行此操作,或者需要使用「OUTPUT ... INTO」語法傳遞表變量?將SQL Server輸出子句轉換爲標量變量
DECLARE @someInt int
INSERT INTO MyTable2(AIntColumn)
OUTPUT @SomeInt = Inserted.AIntColumn
VALUES(12)
是否有任何「簡單」方法來執行此操作,或者需要使用「OUTPUT ... INTO」語法傳遞表變量?將SQL Server輸出子句轉換爲標量變量
DECLARE @someInt int
INSERT INTO MyTable2(AIntColumn)
OUTPUT @SomeInt = Inserted.AIntColumn
VALUES(12)
您需要一個表變量,它可以是這麼簡單。
declare @ID table (ID int)
insert into MyTable2(ID)
output inserted.ID into @ID
values (1)
過了一年之後...如果你需要的是獲得自動生成的表的ID,你可以
SELECT @ReportOptionId = SCOPE_IDENTITY()
否則,就好像你被卡住使用表。
但後來我不得不「從@ID選擇@someInt = ID」。我想知道是否有可能跳過額外的步驟(和中間表變量),如果我需要的只是結果int。 – Benoittr 2011-04-05 21:33:46
@Benoittr - 這取決於你將如何使用該值,它可能不是必需的,你可以在select語句的from子句中使用該表。當您分配一個變量時,您還需要確保插入僅插入一行。如果插入只插入一行,也許更容易直接獲取value子句中使用的內容而不是使用'output'? – 2011-04-05 21:42:46
在自動生成值的情況下,並不總是可以提前知道這些值(標識,計算列)。我知道有很多解決方法。不過,你給了我我正在尋找的答案。謝謝 – Benoittr 2011-04-06 20:56:03