2017-05-29 66 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),那么它是无效的语法。 –