【发布时间】:2009-09-25 23:32:43
【问题描述】:
我想克隆具有单个主键 (PrimKey) 的多个表的行。在 SQL Server 2005 中克隆行的最快方法是什么?
这是一个例子,
克隆 PrimKey1 得到 PrimKey2。所以我尝试以下方法:
INSERT INTO PrimKeys
SELECT 'PrimKey2' AS PrimKey,*
FROM PrimKeys
WHERE PrimKey='PrimKey1'
当然,这里的问题是,PrimKey 列在内部 SELECT 语句中重复出现。有没有其他与上述类似的简单方法?
感谢大家的回复。我继续编写了一个在我的应用程序中处理该问题的函数。我不使用存储过程或临时表,所以我不能使用你们中的一些人发布的几个有效答案。
【问题讨论】:
-
“最快输入”中的最快?永远不要在 SELECT 中使用 * 并且永远不要在 INSERT 中使用隐式列列表。
-
谢谢 Remus,但这并没有回答我的问题。
-
你也没有回答 Remus 的问题,这很重要。
-
最快,因为字符数最少且最通用。如果我不使用 *,整个通用要求就会消失。
标签: sql sql-server sql-server-2005 tsql