2017-05-29 97 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

當然,你不能簡單地用'ON'條款與'INSERT'。可能你想在'JOIN'中使用'SELECT',並用'INSERT'放置它的所有結果。 –

+2

'在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

我沒有降低投票率,但如果這是T-SQL(SQL Server),那麼它是無效的語法。 –