一尘不染

在SQL中克隆行的最快方法

sql

我要克隆具有单个主键(PrimKey)的多个表的行。在SQL Server 2005中克隆行的最快方法是什么?

这是一个例子

克隆PrimKey1以获取PrimKey2。所以我尝试以下方法:

INSERT INTO PrimKeys 
SELECT 'PrimKey2' AS PrimKey,* 
  FROM PrimKeys 
 WHERE PrimKey='PrimKey1'

但是,这里的问题当然是,内部SELECT语句中重复了列PrimKey。还有其他与上述简单类似的方法吗?


谢谢大家的答复。我继续写了一个函数来处理我的应用程序。我不使用存储的Procs或Temp表,因此无法使用某些人发布的几个有效答案。


阅读 200

收藏
2021-03-10

共1个答案

一尘不染

如果要从多个表克隆,最快的方法将是使用存储过程,以便所有查询都保留在数据库中,并且您不必为客户端和服务器之间的通信付出任何代价。

完成此操作后,请开始进行单元测试,以了解执行该操作需要多长时间。然后根据您得到的建议开始尝试对其进行更改,并查看是否有任何改进。

2021-03-10