2

Table159列のテーブルがあります。最後に1つの余分な列Table2があるのコピーです。したがって、60列あります。Table1COLUMN 60table2

からの値をコピーして、追加の列の値を「value」に設定しよtable1うとしていますtable2table2

このようなもの

INSERT INTO Table2
   SELECT * FROM Table1, 'value' AS 'COLUMN 60'

これどうやってするの?上記のコードを使用すると、エラーが発生します。

テーブル'TableLocation'のID列の明示的な値は、列リストが使用され、IDENTITY_INSERTがONの場合にのみ指定できます。

列名が多すぎるので、指定したくありません。

4

3 に答える 3

8

これを試して:

SET IDENTITY_INSERT dbo.Table2 ON

INSERT INTO Table2
SELECT *, 'value' AS 'COLUMN 60' FROM Table1

SET IDENTITY_INSERT dbo.Table2 OFF
于 2012-12-07T15:49:47.367 に答える
3

SSMSから列名をドラッグするだけでよいことをご存知ですか?テーブルに移動し、columnsフォルダーをクエリウィンドウにドラッグすると、すべての列が一覧表示されます

ID値を保持したい場合は、

SET IDENTITY_INSERT dbo.Table2 ON

--INSERT HERE
-- make sure to list all the columns, it is required

SET IDENTITY_INSERT dbo.Table2 OFF
于 2012-12-07T15:49:54.963 に答える
0

それは本当に1つのステートメントで行う必要がありますか?

INSERT INTO Table2
SELECT * FROM Table1

ALTER TABLE Table2
ADD Column60 varchar
于 2012-12-07T15:52:48.410 に答える