0
问题:我在我的数据库中有ARMS.RefRollno表,并且带有roll no和rank现在我有查询正在返回roll和rank的数据集.If我的表中包含该行,那么我需要更新它,如果不是,我想插入一个新的行相对于该卷没有。在Sql Server 2008中将目标表合并到Sql Server 2008中作为现有表的Sql server中的语句
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'.**
问题是什么? –
Sql服务器不允许我使用目标表作为现有的表。 –
@ user1598415 - 不,你误解了这个问题。合并始终针对现有的表格。 –