问题:我的数据库中有表ARMS.RefRollno,现在带有roll no和rank,我有一个查询,该查询返回了roll和rank的数据集。如果我的表包含该行,那么我需要更新它,如果不是,我想更新它插入关于该卷号的新行。
create table #temp
(
ROLLNO varchar(100),
Ranking varchar(100),
TestRecID varchar(100)
)
INSERT INTO #temp (ROLLNO, Ranking,TestRecID) EXEC [ARMS].[GetStudentResultForUpdateRank] '412'
MERGE ARMS.RefRollno AS C
USING #temp AS CT
ON C.TestRecID = CT.TestRecID
WHEN MATCHED THEN
UPDATE SET
C.RefRank = CT.Ranking
WHEN NOT MATCHED THEN
INSERT (TestRecId,RefRollNo, RefRank,IsActive,CreatedDate)
VALUES (CT.TestRecID,CT.ROLLNO,CT.Ranking, 1,getdate());
drop table #temp
在这里,ARMS.RefRollno是我在数据库中的现有表。任何帮助表示赞赏。
** Error by Sql Server:Incorrect syntax near 'MERGE'.**
改变
EXEC [ARMS].[GetStudentResultForUpdateRank] '412'
到
EXEC [ARMS].[GetStudentResultForUpdateRank] '412';
(请注意添加尾随分号)。
仅当数据库的兼容模式早于2008年时,才似乎需要这样做。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句