我需要使用在存储过程中声明的临时变量。我需要使用此变量来分配一个值,并在匹配语句中执行一些功能。我如何使用?有没有其他的方式来有价值?如何在SQL Server 2008中的MERGE语句中声明一个临时变量?
在此先感谢
我需要使用在存储过程中声明的临时变量。我需要使用此变量来分配一个值,并在匹配语句中执行一些功能。我如何使用?有没有其他的方式来有价值?如何在SQL Server 2008中的MERGE语句中声明一个临时变量?
在此先感谢
这是你如何定义SQL Server中的局部变量:如果你声明MERGE
声明之前,那么你的确可以使用MERGE
内的变量的变量
DECLARE @MyVariable INT
SET @MyVariable = 12
SELECT HouseNumber + @MyVariable as NewHouseNumber FROM MyTable WHERE Id = 1
声明。这适用于表变量以及标量变量。
我觉得他彪这样的事情
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。有什么建议么?
我的文章更像是对原始问题的补充。