如何将表T中的行的副本插入表T中而不列出其列且没有主键错误?
|
我想做这样的事情:
INSERT INTO T SELECT * FROM T WHERE Column1 = \'MagicValue\' -- (multiple rows may be affected)
问题在于T具有主键列,因此这会导致错误,就像尝试设置主键一样。坦白说,我也不想设置主键。我想使用新的主键创建全新的行,但其余字段将从原始行复制过来。
这应该是适用于各种表的通用代码。好吧,因此,如果没有很好的方法,我将只编写代码以动态提取列名,构造列表等。但是也许有吗?我是第一个尝试在数据库中创建重复行的人吗?
没有找到相关结果
已邀请:
2 个回复
翰冒绢县
或
数据类型。 没有一些非常新颖的动态SQL,您将无法做您想要做的事情。如果要插入除身份字段以外的所有内容,则需要指定字段。 如果要为该字段指定一个值,则需要在
和
中指定所有字段,然后打开
。
捻盒愧杯
或者它可以增加大于1的返回字段数量
我不确定您要确切执行的操作,但是如果以上方法对您执行的操作不起作用,我认为您的设计需要一个新表并将其插入其中。 编辑:同样如您的评论所述,通用插入并没有真正意义。想象一下,要使此方法起作用,您需要使用相同数量的字段,并且它们将拥有相同的值,这表明它们也应具有相同的名称(即使不需要)。基本上是两次相同的表结构。