2017-07-12 7 views
0

私はこのようになります文を持っている:SQL Serverにレコードを挿入すると、競合時に更新する方法は?

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

私はそれを挿入しようとする何かをするが、競合更新値2および値3にVALUE1 = VALUE1は(すなわち、VALUE1が重複する主キーに等しいことができること反対に挿入しようとしていますか?)

+0

「INSERT」の代わりに「MERGE」ステートメントを使用しますか? –

+0

その外観はどうですか?私はマージを使ったことがありません。 – Jasonca1

+0

[MERGEの公式MSDNのドキュメント](https://docs.microsoft.com/en-us/sql/t-sql/statements/merge-transact-sql)を参照してください。[The MERGE Statement in SQL Server 2008](Simple-Talkのhttps://www.red-gate.com/simple-talk/sql/learn-sql-server/the-merge-statement-in-sql-server-2008/)を参照してください。多くの背景情報のため –

答えて

0
INSERT INTO table (value1, value2, value3) VALUES(%s, %s, %s) 
ON DUPLICATE KEY 
UPDATE value2=%s, value3=%s 
+0

これは私が探していたものです。 – Jasonca1

+2

これはsql serverでタグ付けされています。これはmysql構造体です。 –

+0

@ Jasonca1これは試しましたか?私はこれがSQL Serverで動作するとは思わない。 – GuidoG