表:
emergency_tab(
user_id
,emergency_no
)
和
约束(
user_id
[primary key
])
当收到id
和no
时,我要求insert
在user_id
中对emergency_no
和emergency_tab
列的值。如果存在一个具有相同user_id
的列,我只想更新emergency_no
只需要insert
新行。
我在Visual Studio 2010
中使用MS SQL Server 2008
和vs10
这是工作
IF (SELECT COUNT(*) FROM emergency_tab WHERE user_id='?')<>0
BEGIN
--UPDATE
END
ELSE
BEGIN
--INSERT
END
我相信这被称为“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);