1. ホーム
  2. データベース
  3. エムエスエル

SQL ServerのSELECT INTOとINSERT INTOのSELECTのケースを説明する

2022-01-05 14:58:29

データベース開発の過程で、どうしてもテーブルデータのバックアップが発生し、SELECT INTO ......とINSERT INTO SELECT ......この二つの文はテーブルデータのレプリケーションに使用されますが、以下はその簡単な紹介です。

1、insert into select

ステートメント形式です。Insert Into Table2(column1,column2......) Select value1,value2,value3,value4 From Table1 or  テーブル2への挿入 セレクト * テーブル1から

注:このテーブルレプリケーションの方法では、Table2が事前に作成されている必要があります。

-1. Create a table
create TABLE Table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

create TABLE Table2
(
    a varchar(10),
    c varchar(10),
    d varchar(10)
);
commit;
-2. Create test data
Insert into Table1 values('Zhao','asds','90');
Insert into Table1 values('money','asds','100');
Insert into Table1 values('Sun','asds','80');
Insert into Table1 values('Li','asds',null);
commit;
--Copy table1 data to table2
Insert into Table2(a, c, d) select a,b,c from Table1;
commit;
--or, this method must require that table2 and table1 have the same number of columns and are compatible in type
Insert into Table2 select * from table1;
commit;

上記のSQLの構文は、OracleとMS SqlServerで同じであり、普遍的に使用することができます。

2、select into......(選択)。

コンパイラはTable1のテーブル構造に基づいてTable2を自動的に作成しますが、基本的にTable1と同じですが、Table2がすでに存在する場合は、コンパイラはエラーを報告します。

このようにOracleとMS SqlServerでは、以下のように少し文が異なります。

ステートメントの形式

<ブロッククオート

Oracle:Select column1,column2...From Table1としてTable2を作成するか Select * From Table1としてTable2を作成する。

MS SqlServer: Select column1,column2...... into Table2 From Table1 or Select * into Table2 From Table1

--oracle
-1. Create the table
create TABLE Table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

commit;
--2. Create test data
Insert into Table1 values('Zhao','asds','90');
Insert into Table1 values('money','asds','100');
Insert into Table1 values('Sun','asds','80');
Insert into Table1 values('Li','asds',null);
commit;
--Copy table1 data to table2
Create Table Table2 as select a,b,c From table1;
Commit;
--or (these two ways of sql can be applied only once)
Create table table2 as select * From Table1;
Commit;
--delete table
drop table table1;
drop table table2;
commit;

--MS SqlServer
-1. Create a table
create TABLE Table1
(
    a varchar(10),
    b varchar(10),
    c varchar(10)
) ;

commit;
--2. Create test data
Insert into Table1 values('Zhao','asds','90');
Insert into Table1 values('money','asds','100');
Insert into Table1 values('Sun','asds','80');
Insert into Table1 values('Li','asds',null);
commit;
--Copy table1 data to table2
Select a,b,c into Table2 From table1;
Commit;
--or (these two ways of sql can be applied only once)
Select * into table2 From Table1;
Commit;
--delete table
drop table table1;
drop table table2;
commit;

SQL Server SELECT INTOとINSERT INTO SELECTの場合についてこの記事は、より関連するSQL Server SELECT INTOとINSERT INTO SELECTの内容は、BinaryDevelopの以前の記事を検索するか、次の関連記事を閲覧を続けてください私はあなたがBinaryDevelopをよりサポートすることを願って後で!この記事は、この記事に導入されています。