2012-03-14 52 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。有什么建议么?

我的文章更像是对原始问题的补充。

相关问题