Bar*_*urg 7 sql vb.net replace sql-server-2005 sql-server-2008
我需要一个SQL查询来更新或创建数据库条目(如果某个客户尚不存在).我在互联网上找到了当前的解决方案:
command.CommandText = "REPLACE INTO [Resource_Tracer].[dbo].[Customer](CustomerName, CustomerID) VALUES (@CustomerName, @CustomerID)"
Run Code Online (Sandbox Code Playgroud)
既然我没有看到它经常使用,实际上从未听说过它,这真的是我想要的解决方案,还是我应该手动完成?
更常用
INSERT INTO table col1) VALUES (1)
ON DUPLICATE KEY UPDATE col1=VALUES(Col1)
Run Code Online (Sandbox Code Playgroud)
replace into实际上删除重复的条目并插入新的条目。
无论REPLACE INTO和ON DUPLICATE KEY建议的替代是从MySQL变异的非标准SQL.因此,您是否使用它取决于a)您是否使用MySQl和b)您是否想要与该变体绑定.
MERGE如果在您的平台上实现,ANSI SQL定义了更标准的语法