0

Variables行をVariablesTestSQL Serverから にコピーしたいと考えています。2つの列、データ型などは同じです。以下の回答を読んで、これが進むべき道だと思います

set IDENTITY_INSERT VariablesTest ON
insert VariablesTest Select * from Variables
set IDENTITY_INSERT VariablesTest OFF

しかし、SQL Server Management Studio はエラーをスローします。

An explicit value for the identity column in table 'VariablesTest' can only be specified when a column list is used and IDENTITY_INSERT is ON.

はぁ...

4

2 に答える 2

1

"列リストを使用する場合のみ指定できます"

エラー メッセージは、列リストを使用するように指示しています。

set IDENTITY_INSERT VariablesTest ON
insert VariablesTest(column1,column2,etc) Select column1,column2,etc from Variables
set IDENTITY_INSERT VariablesTest OFF
于 2013-07-01T21:57:39.197 に答える
0

両方のテーブルで列が同じであることがわかっている場合でも、INSERT 部分にそれらをリストする必要がありますが、SELECT 部分ではアスタリスクを使用できます...

set IDENTITY_INSERT VariablesTest ON

INSERT VariablesTest (col1, col2, col3, col4,...) SELECT * FROM Variables

set IDENTITY_INSERT VariablesTest OFF

...これは安定したコードではなく、列が両方のテーブルまたは 1 つだけに追加されると壊れます。したがって、これは可能ですが、両方の列のセットを別々にリストすることをお勧めします。Red Gate の SQL Prompt などのツールを使用すると、アスタリスクをコンマ区切りの列のリストに自動展開できるため、これもオプションであり、入力やミスを防ぐために頻繁に使用するオプションです。

于 2013-07-02T02:58:46.143 に答える