如何在不存在相同值时才在表中插入新行,否则更新相关内容?



表:

emergency_tab (user_idemergency_no(

约束 (user_id[primary key](

收到idno时,我需要将这些值insertemergency_tab中的user_idemergency_no列。如果存在具有相同user_id的列,我只想更新emergency_no,无需insert新行。

我正在使用内置的Visual Studio 2010MS SQL Server 2008vs10

我相信这被称为"upsert",您可以使用 MERGE 关键字,例如:

MERGE [devLaserViso].[dbo].[Machine] t WITH (HOLDLOCK) 
USING [devLaserViso].[dbo].[TempMachine] s
ON (s.MachineName = t.MachineName)
WHEN MATCHED THEN 
UPDATE SET t.MachineName = s.MachineName,
t.ProgramName =s.ProgramName
WHEN NOT MATCHED BY TARGET THEN 
INSERT (MachineName,ProgramName) VALUES (s.MachineName, s.ProgramName);

从 https://stackoverflow.com/a/50232866

它正在工作

IF (SELECT COUNT(*) FROM emergency_tab WHERE user_id='?')<>0
BEGIN
--UPDATE
END 
ELSE    
BEGIN
--INSERT
END

最新更新