2017-05-29 14 views
-4

重複キーの更新時に挿入を使用してSQLを作成しました。私はなぜそれを挿入することができないか、データを更新し、私にエラーを伝えることができないのだろうか。SQL挿入重複キーの更新が機能していません

ここに以下の私のサンプルSQLはエラーコード

'オン' キーワードの近くに不正な構文

Insert Into tbAdminContact(ContactID,EmpID,Contact,SpeedDial,company,CreatedBy,CreatedDate) 
    Values(@Contactid,@EmpID,@Contact,@SpeedDial,@company,@createdby,convert(datetime,@createddate,103)) 
    On Duplicate key Update Contact=values(@Contact), SpeedDial=values(@SpeedDial), UpdatedBy=values(@UpdatedBy), UpdatedDate=values(convert(datetime,@UpdatedDate,103)) 

です。

+0

確かにあなたは、単にINSERT' 'と' on'の句を使用することはできません。おそらく、あなたは 'JOIN'で' SELECT'を使い、すべての結果を 'INSERT'で入れたいでしょう。 –

+2

ON DUPLICATE KEY UPDATEはMySQLの機能です。 SQL Server(全く別のデータベース)を使用している場合は、 – Plutonix

+0

は「重複キー更新」と同様に動作する他のクエリがありますか? – user3759016

答えて

-1

使用この

Update tbAdminContact set Contact=values(@Contact), SpeedDial=values(@SpeedDial), UpdatedBy=values(@UpdatedBy), UpdatedDate=values(convert(datetime,@UpdatedDate,103)) 
where [email protected] 

IF @@ROWCOUNT=0 

Insert Into tbAdminContact(ContactID,EmpID,Contact,SpeedDial,company,CreatedBy,CreatedDate) 
    Values(@Contactid,@EmpID,@Contact,@SpeedDial,@company,@createdby,convert(datetime,@createddate,103)) 
+0

なぜ落札しましたか... – Ravi

+0

私はdownvoteしませんでしたが、T-SQL(SQL Server)なら有効な構文ではありません。 –

関連する問題