如何仅当不存在相同值时才向 table 插入新行,否则更新相关内容?

How to insert a new row to a table only if when same value does not exist, else update the related contents?

Table:

emergency_tab (user_id, emergency_no)

Constraints (user_id [primary key])

当收到 idno 时,我需要将这些值 insert 到 [=20] 中的 user_idemergency_no 列=].如果存在具有相同 user_id 的列,我只想更新 emergency_no,不需要 insert 新行。

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

我相信这叫做 "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);

来自

正在运行

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

ELSE    
     BEGIN
       --INSERT
     END