SQL Engine Reference (v11)

SELECT(INTO 付き)

SELECTINTO 付き)ステートメントを使用すると、指定したテーブルから列の値を選択して、変数に挿入したり、テーブルにデータを入れることができます。

構文

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 に割り当てます。

SELECT first_name, last_name INTO :x, :y from person where 
first_name = 'Bill' 

関連項目

CREATE FUNCTION

CREATE PROCEDURE

CREATE (テンポラリ) TABLE

CREATE TABLE


SAVEPOINT

SELECT