2012-03-14 48 views

回答

1

這是你如何定義SQL Server中的局部變量:如果你聲明MERGE聲明之前,那麼你的確可以使用MERGE內的變量的變量

DECLARE @MyVariable INT 
SET @MyVariable = 12 
SELECT HouseNumber + @MyVariable as NewHouseNumber FROM MyTable WHERE Id = 1 
0

聲明。這適用於表變量以及標量變量。

0

我覺得他彪這樣的事情

MERGE TargetTable as tar 
USING SourceTable as src 
ON tar.SomeID = src.OtherID 

DECLARE @BossId INT 
SET @BossId = (SELECT ID FROM EmployeeTable WHERE [BossID] = src.BossID) 
--Here we take dynamicly an ID from another table 

WHEN NOT MATCHED THEN 
    INSERT (list OF fields, [BossID]) 
    VALUES (list OF values, @BossId) 

WHEN MATCHED THEN 
    UPDATE 
    SET (list OF SET statements); 

這樣在每一個INSERT語句都會有不同的BossID。這甚至有可能嗎?如果沒有 - 如何以這種方式插入記錄?想象一下,SourceTable(在我的情況下是SP中的一個輸入參數)帶有需要與另一個Talbe映射的ID。有什麼建議麼?

我的文章更像是對原始問題的補充。

相關問題