有没有办法在T-SQL中快速复制记录?
问题描述:
我需要复制选定行的所有字段完全相同,除了由ID自动添加的ID标识int。有没有办法在T-SQL中快速复制记录?
复制/克隆记录或记录(最多50个)的最佳方法是什么?
MS SQL 2008中是否有任何T-SQL功能,或者是否需要在存储过程中选择插入?
答
完成所需的唯一方法是使用插入语句,该语句枚举除标识列以外的每个列。
您当然可以在Insert语句中使用Select语句来选择要复制的多行。但是,我认为这会违反你的商业密钥(除了代理键以外的其他唯一约束),并且需要修改其他列。
Insert MyTable(...
Select ...
From MyTable
Where ....
答
如果您能够在插入行时检查复制条件,则可以在该表上放置INSERT触发器。这将允许您检查插入的列,而不必选择整个表。