-1

我如何将一堆行复制到一个表中,然后更改一列中的值并将它们插入回同一个表中?

该表具有以下列:

[PositionControlPositionId]
  ,[PositionControlPositionJobId]
  ,[PositionControlPositionRefLocationId]
  ,[PositionControlPositionCount]
  ,[PositionControlPositionEmploymentType]
  ,[PositionControlPositionLabel]

PositionControlPositionID是主键 PositionControlPositionRefLocationId并且PositionControlPositionCount是外键

我已经尝试了以下查询,但没有奏效

Insert into [dbo].[PositionControlPosition] ([PositionControlPositionId]
  ,[PositionControlPositionJobId]
  ,[PositionControlPositionRefLocationId]
  ,[PositionControlPositionCount]
  ,[PositionControlPositionEmploymentType]
  ,[PositionControlPositionLabel]) Select [PositionControlPositionId]
  ,[PositionControlPositionJobId]
  ,[PositionControlPositionRefLocationId]
  ,[PositionControlPositionCount]
  ,[PositionControlPositionEmploymentType]
  ,[PositionControlPositionLabel] from [dbo].[PositionControlPosition]

我也搜索了谷歌,但找不到我需要的任何东西,

我意识到这可能是一个微不足道的问题,因此将不胜感激任何帮助。

4

1 回答 1

2

您要查找的语法采用以下形式。

 insert [table]
 select
           [a]
         , [b]
         , 'newCValue'
         , [d]
     from
         [table]

如果您没有选择所有列,那么您应该在插入时指定一个列列表

 insert [table]
         ( [a]
          ,[b]
          ,[c]
          ,[d])
 select
           [a]
         , [b]
         , 'newCValue'
         , [d]
     from
         [table]

在你的情况下,我怀疑你违反了你的主键,我假设它是一个身份列,所以这应该可以工作。

INSERT [dbo].[PositionControlPosition]
        (
          [PositionControlPositionJobId]
         ,[PositionControlPositionRefLocationId]
         ,[PositionControlPositionCount]
         ,[PositionControlPositionEmploymentType]
         ,[PositionControlPositionLabel]
        ) 
SELECT
          [PositionControlPositionJobId]
         ,[PositionControlPositionRefLocationId]
         ,[PositionControlPositionCount]
         ,[PositionControlPositionEmploymentType]
         ,[PositionControlPositionLabel]
    FROM
         [dbo].[PositionControlPosition]

This will duplicate the rows in PositionControlPosition excluding the primary key. If PositionControlPositionId is an identity column, it will be populated with new primary key values.

于 2013-01-30T17:34:59.030 回答