2011-03-18 53 views
1

我有表A,我需要复制表中的一些行强制其中一个字段的值,这个字段不是主键,但它会使所有其他行不同。复制一个SQL表

+0

需要更多的细节+一些样品会很好。 – 2011-03-18 10:34:49

+0

另一件事是,有些行已经插入了manualy,不能被考虑,或者因价值重复而不会运行。 – MikeRTeixeira 2011-03-18 11:04:40

回答

0

您可以使用insert将行复制到同一个表中。这个例子拷贝col1col3,但使用的col2一个新值:

insert Table1 
     (col1, col2, col3) 
select col1 
,  'NewCol2Value' 
,  col3 
from Table1 
0

像这样的事情

插入到表A(COL1,COL2,COL3,othercol)
选择COL1,COL2, COL3,'fixedvalue' 从表A

完整副本将

插入到表A(COL1,COL2,COL3,othercol)
选择COL1,COL2,COL3,othercol
从表A

假设:

  1. 主键是一个标识列,在上面的查询中没有列为列 - 因为它的值是自动填充的
  2. Othercol是您希望为其提供固定值的列。这是一个字符串,但任何数字,日期等会做
+0

这看起来不错,但还有一个问题,我可以在此查询中添加“WHERE NOT EXISTS”代码吗? 谢谢。 – MikeRTeixeira 2011-03-18 18:26:24

+0

@Mike当改变使记录不同时,为什么会存在“WHERE NOT EXISTS”?如果这是唯一改变的列,或者(1)PK是身份,所以没有问题;或者(2)PK也需要改变,但对于所有行的唯一改变将会非常棘手 – RichardTheKiwi 2011-03-19 12:12:20

相关问题