31

table1すでに存在すると言っtable2て、これらのクエリに違いはありますか

クエリ1 :-

select * into table1 from table2 where 1=1

クエリ2: -

insert into table1 select * from table2
4

6 に答える 6

50

は table1 を作成し、そこselect * into table1 from table2 where 1=1に table2 の値を挿入します。そのため、テーブルが既に作成されている場合、そのステートメントはエラーになります。

insert into table1 select * from table2table2 の値を table1 に挿入するだけです。

于 2011-12-19T11:29:31.850 に答える
8

1 つ目 ( SELECT INTO) は、新しいテーブルを作成して入力し、2 つ目 ( INSERT... SELECT) は既存のテーブルに挿入します。

2008 年より前のバージョンの SQL Server では、最初のログは最小限に記録され、2 番目のログは記録されませんでしたが、これはもはや当てはまりません

于 2011-12-19T11:28:32.943 に答える
5
select * into table1 from table2 where 1=1

上記のクエリでは、テーブルが存在しないことが必要です。すべての列はソース テーブルから取得されるときに作成されるため、列を指定する必要はありません。

insert into table1 select * from table2 

上記のクエリでは、EXISTING table1 が必要です。両方のテーブルの列もまったく同じ順序にする必要があります。そうでない場合は、両方のテーブルの列リストを提供する必要があります。

于 2011-12-19T11:37:28.263 に答える
4

以下のクエリでtable1は、作成されるか、既に存在する場合はエラーがスローされます

select * into table1 from table2 where 1=1

以下のクエリでは、コマンドを実行する前にテーブルが存在しているtable1 必要があります

insert into table1 select * from table2
于 2011-12-19T11:30:24.337 に答える
1
INSERT INTO TABLE_A SELECT * FROM TABLE_B

テーブルの値を別のテーブルに挿入するために使用される一般的に使用される文です。これを使用して、選択した列を挿入することもできます。

SELECT * INTO TABLE_A FROM TABLE_B

TABLE_B の値が入力された新しい TABLE_A を作成します

于 2013-06-11T11:25:30.523 に答える