Sql server 将记录插入SQL Server,如何在冲突时更新?

Sql server 将记录插入SQL Server,如何在冲突时更新?,sql-server,merge,insert,upsert,Sql Server,Merge,Insert,Upsert,我有一句话是这样的: Insert into table (value1, value2, value3) Values (%s, %s, %s) 我是否可以在尝试插入时执行某些操作,但在发生冲突时更新value2和value3,其中value1=value1(即value1等于尝试插入的重复主键) 使用MERGE语句而不是INSERT?这是什么样子?我从未使用过merge.Read,并在Simple Talk上查看更多背景信息这正是我要找的。这是用sql server标记的,这是一个mysq

我有一句话是这样的:

Insert into table (value1, value2, value3)
Values (%s, %s, %s)

我是否可以在尝试插入时执行某些操作,但在发生冲突时更新value2和value3,其中value1=value1(即value1等于尝试插入的重复主键)

使用
MERGE
语句而不是
INSERT
?这是什么样子?我从未使用过merge.Read,并在Simple Talk上查看更多背景信息这正是我要找的。这是用sql server标记的,这是一个mysql构造。@Jasonca1您尝试过吗?我认为这在sql-server中不起作用。在哪个sql server版本中实现了“基于重复密钥”?
INSERT INTO table (value1, value2, value3) VALUES(%s, %s, %s) 
ON DUPLICATE KEY 
UPDATE  value2=%s, value3=%s