|
SELECT(INTO 付き)ステートメントを使用すると、指定したテーブルから列の値を選択して、変数に挿入したり、テーブルにデータを入れることができます。
SELECT [ALL | DISTINCT] [top 句] 選択リスト INTO 変数 | テーブル名 | テンポラリ テーブル名[, 変数]... FROM テーブル参照[, テーブル参照]...[WHERE 検索条件] [GROUP BY 式[, 式]...[HAVING 検索条件]] [UNION [ALL] クエリ スペック] [ORDER BY order-by 式 [, order-by 式]...] クエリ スペック ::= (クエリ スペック) | SELECT [ALL | DISTINCT] [top 句] 選択リスト FROM テーブル参照[, テーブル参照]... [WHERE 検索条件] [GROUP BY 式[, 式]... [HAVING 検索条件]] 変数 ::= ユーザー定義名 テーブル名 ::= ユーザー定義のテーブル名 テンポラリ テーブル名 ::= テンポラリ テーブルのユーザー定義名
残りの構文定義については、SELECT を参照してください。
変数は、ストアド プロシージャ、トリガー、およびユーザー定義関数内で生じる必要があります。
SELECT INTO を使用してテーブルにデータを入れられるのは、SELECT INTO ステートメントがユーザー定義関数またはトリガーの外部で使用される場合のみです。ユーザー定義関数またはトリガーの内部で、SELECT INTO を使用してテーブルを作成したりデータを入れることは許可されていません。
SELECT INTO をストアド プロシージャ内で使用することは許可されています。
SELECT INTO ステートメントによって作成し、データを入れることができるテーブルは 1 つだけです。単独の SELECT INTO ステートメントで複数のテーブルの作成とデータ投入を行うことはできません。
SELECT INTO で作成された新規テーブルは、ソース テーブルからの CASE および NOT NULL 制約によってのみ保守することができます。DEFAULT および COLLATE などのこれ以外の制約では保守できません。さらに、新しいテーブルにはインデックスは作成されません。
SELECT INTO を使用してテンポラリ テーブルにデータを入れる方法については、CREATE (テンポラリ) TABLE の例を参照してください。
次の例では、Person テーブルの、名前が Bill であるデータの first_name と last_name の値を変数 :x、:y に割り当てます。
|