REPLACE INTO是一个好的做法吗?

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)

既然我没有看到它经常使用,实际上从未听说过它,这真的是我想要的解决方案,还是我应该手动完成?

jue*_*n d 5

更常用

INSERT INTO table col1) VALUES (1)
ON DUPLICATE KEY UPDATE col1=VALUES(Col1)
Run Code Online (Sandbox Code Playgroud)

replace into实际上删除重复的条目并插入新的条目。


pod*_*ska 5

无论REPLACE INTOON DUPLICATE KEY建议的替代是从MySQL变异的非标准SQL.因此,您是否使用它取决于a)您是否使用MySQl和b)您是否想要与该变体绑定.

MERGE如果在您的平台上实现,ANSI SQL定义了更标准的语法