-1

一連の行をテーブルにコピーし、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]

あなたの場合、主キーに違反していると思われます。これはID列であると想定しているため、これは機能するはずです。

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

PositionControlPositionこれにより、主キーを除外して行が複製されます。が ID 列の場合PositionControlPositionId、新しい主キー値が入力されます。

于 2013-01-30T17:34:59.030 に答える