我有一个合并语句,应该始终更新或插入一条记录。我想在变量中记住该语句的 ID。它看起来像这样:
DECLARE @int int
MERGE dbo.table AS A
USING (SELECT 'stringtomatch' AS string) AS B ON B.string= A.string
WHEN MATCHED THEN
UPDATE SET somecolumn = 'something'
WHEN NOT MATCHED THEN
INSERT
VALUES ('stringtomatch',
'something')
OUTPUT @int = inserted.ID;
现在这不起作用,因为您不能以这种方式在输出子句中设置@int。我知道我可以创建一个临时表并在输出中使用INTO @temptable。但是因为我知道它总是一条记录,所以我想将 ID 放在一个 INT 变量中。这甚至可能吗?或者我是否被迫使用表变量。我希望我只是缺少一些语法。