我现在有这个SQL:
delete from [db_dest].[dbo].[Table1];
insert into [db_dest].[dbo].[Table1] select * from [db_src].[dbo].[Table1];
我还有其他可靠的选择吗? MERGE会更快吗?
答案 0 :(得分:2)
通常,如果需要从表中删除所有记录 - 请考虑使用TRUNCATE TABLE。这样更快,特别是当表包含许多记录时,因为在使用DELETE FROM时会记录每个单独的记录删除。
合并通常不会比纯TRUNCATE TABLE后跟INSERT快,因为Merge必须在两个表中逐个字段地比较记录,以便能够更新已从源更改的记录,或删除源中不再可用的记录。