T-SQL

当ページはMicrosoft SQL Serverで用いられるT-SQL(Transact-SQL)に関する情報をまとめています。

ALTER PROCEDURE文

ストアドプロシージャの内容を変更します。

ストアドプロシージャ名直後の括弧内に引数を受け取るパラメータ、および呼び出し元に戻り値を返すOUTPUTオプションを付与したパラメータを指定することができます。

使用しない場合は括弧を省略して、ASを直後に付けます。

文法

ALTER PROCEDURE ストアドプロシージャ名 (

パラメータ データ型 OUTPUTオプション

) AS

以下処理

例文

ALTER PROCEDURE ストアドプロシージャ名 (

@Foo1 VARCHAR(50),

@Foo2 INT OUTPUT

) AS

以下処理

ALTER TABLE文

ALTER TABLE文はいくつかの機能がまとまっているのが特徴です。

ADD句

新しいカラムを追加します。


オプションにはNULLオプション・NOT NULLオプションのいずれかを指定することができます。

指定しなかった場合はNULLオプションが設定されます。

文法

ALTER TABLE テーブル名 ADD

カラム名 データ型 オプション

例文

ALTER TABLE Table_1 ADD

Column1 VARCHAR(50),

Column2 INT NOT NULL

ALTER COLUMN句

カラム情報を変更します。

1度に変更できるカラムは1つです。


オプションにはNULLオプション・NOT NULLオプションのいずれかを指定することができます。

指定しなかった場合はNULLオプションが設定されます。

文法

ALTER TABLE テーブル名 ALTER COLUMN カラム名 データ型 オプション

例文

ALTER TABLE Table_1 ALTER COLUMN Column1 INT NOT NULL

DROP COLUMN句

カラムを削除します。

文法

ALTER TABLE テーブル名 DROP COLUMN

カラム名

例文

ALTER TABLE Table_1 DROP COLUMN

Column1,

Column2

CLOSE文

カーソルの終了を宣言します。

文法

CLOSE カーソル名

CREATE DATABASE文

データベースを作成します。

文法

CREATE DATABASE データベース名

例文

CREATE DATABASE Database_1

CREATE PROCEDURE文

ストアドプロシージャを新規作成します。

ストアドプロシージャ名直後の括弧内に引数を受け取るパラメータ、および呼び出し元に戻り値を返すOUTPUTオプションを付与したパラメータを指定することができます。

使用しない場合は括弧を省略して、ASを直後に付けます。

文法

CREATE PROCEDURE ストアドプロシージャ名 (

パラメータ データ型 OUTPUTオプション

) AS

以下処理

例文

CREATE PROCEDURE ストアドプロシージャ名 (

@Foo1 VARCHAR(50),

@Foo2 INT OUTPUT

) AS

以下処理

CREATE TABLE文

テーブルを作成します。

文法

CREATE TABLE テーブル名 (

カラム名 データ型 オプション

)

例文

CREATE TABLE Table_1 (

No INT PRIMARY KEY

)


CREATE TABLE文にはカラム情報を設定する記述方法とは別に、外部キーを指定する記述方法(FOREIGN KEY句)があります。

外部キーに指定できるのはPRIMARY KEYオプションを指定したカラムのみとなっています。

両者の記述順に指定はありませんので好きな順番で書いても、混在して書いても問題ありません。

以下の例では列情報を設定してから、FOREIGN KEY句を記述しています。

文法

CREATE TABLE テーブル名 (

カラム名 データ型 オプション,

FOREIGN KEY カラム名 REFERENCES テーブル名 ( カラム名 )

)

例文

CREATE TABLE Table_1 (

No. INT PRIMARY KEY,

FOREIGN KEY No. REFERENCES Table_2 ( Employee_no.)


オプションは各カラムごとに特殊な効果を付与させるものです。。

適用させるのに順番の指定はありませんので好きな順番で書くことができます。

CHECK

CHECKオプションはカラムに格納する値を制限することができるオプションです。

例文

CREATE TABLE Table_1 (

Age INT CHECK ( Age > 19 ),

Flag INT ( Flag = 0 OR Flag = 1)

DEFAULT

DEFAULTオプションはデータを入れる際、値が指定されなかった場合に自動的に入力されるデータを指定するものです。

例文

CREATE TABLE Table_1 (

Question1 VARCHAR(50) DEFAULT 'unanswered'

Day DATE DEFAULT GETDATE()

)

DEALLOCATE

カーソルを削除します。

文法

DEALLOCATE カーソル名

IDENTITY

IDENTITYオプションは指定したカラムに一定間隔で連番を振るようにさせます。

「開始値」に指定した値からカウントを始め、「増加値」の分だけ数値を増加させます。


INSERT INTO文を利用するときはIDENTITYオプションを指定したカラムを対象に含めてはなりません。

文法

IDENTITY (開始値, 増加値)

例文

CREATE TABLE Table_1 (

No INT IDENTITY ( 1, 1 )

)

NOT NULL

NOT NULLオプションは指定したカラムにNULLを格納することを禁止する機能があります。


また、NULLオプションというNULLの格納許可を表すものもありますが、SQL Serverでは原則としてNULLの格納が許可されていますので、わざわざ指定する必要はありません。

例文

CREATE TABLE Table_1 (

Column1 NULL,

Column2 NOT NULL

)

PRIMARY KEY

PRIMARY KEYオプションは指定したカラムを主キーとするオプションです。

厳密には違うのですが、NOT NULLオプションとUNIQUEオプションを併用するのと似た効果を持ちます。

例文

CREATE TABLE Table_1 (

No INT PRIMARY KEY

)

UNIQUE

UNIQUEオプションを指定したカラムには重複した内容を格納できなくなります。

例文

CREATE TABLE Table_1 (

No INT UNIQUE

)

DECLARE文

変数・カーソル・ユーザー定義テーブル型変数等の宣言を行うことができます。

変数

DECLARE

@変数名 データ型 = 値

カーソル

DECLARE カーソル名 CURSOR FOR

SELECT文

DROP DATABASE文

データベースを削除します。

文法

DROP DATABASE データベース名

例文

DROP DATABASE Database_1

DROP PROCEDURE文

ストアドプロシージャを削除します。

文法

DROP PROCEDURE ストアドプロシージャ名

例文

DROP PROCEDURE USP_1

DROP TABLE文

テーブルを削除します。

文法

DROP TABLE テーブル名

例文

DROP TABLE Table_1

EXECUTE文

ストアドプロシージャを実行します。

EXECと略することができます。

文法

EXECUTE ストアドプロシージャ名 引数

例文

EXECUTE USP_1 '3', '処理開始'

INSERT INTO文

テーブルにデータを追加します。

追加する方法として、データを指定する方法と別テーブルからコピーする方法の2つがあります。

任意指定

追加するデータをこちらで定めます。

全てのカラムにデータを追加する場合はカラムの指定を省略することができます。

文法

INSERT INTO テーブル名 (

カラム名

) VALUES (

追加するデータ

)

例文

INSERT INTO Table_1 (

No,

Name,

Price

) VALUES (

2,

Apple,

150

)

例文(カラム省略版)

INSERT INTO Table_1 VALUES (

2,

Apple,

150

)

別テーブルからコピー

条件に従って抽出したデータを追加します。

コピー元のデータ型と追加先のデータ型が一致している必要があります。

文法

INSERT INTO テーブル名

SELECT文

例文

INSERT INTO Table_1

SELECT

*

FROM

Table_2

WHERE

Price > 300

OPEN文

カーソルの開始を宣言します。

文法

OPEN カーソル名

RETURN文

呼び出し元に戻り値を返し、処理を終了させます。

文法

RETURN 戻り値

例文1

RETURN 1

例文2

RETURN @Foo

SELECT文

テーブルからデータを抽出することができます。

SELECT句・FROM句・WHERE句・GROUP BY句・HAVING句・ORDER BY句の6つの句に分かれています。

記述順も上記の並びとなります。

SELECT句

抽出するカラムを選択します。

文法

SELECT

カラム名

FROM句

抽出対象となるテーブルを選択します。

AS句はテーブルに一時的に別名とすることができます。

WITH句は排他ロックせずにクエリを処理することができます。

どちらも省略可能ですが記載順には制限があります。

文法

FROM

テーブル名 AS句 WITH句,

テーブル名

WHERE句

GROUP BY句

HAVING句

ORDER BY句

SET文

宣言された変数に値を代入します。

文法

SET @変数名 = 値

TRUNCATE TABLE文

テーブルに格納されたデータを削除します。

削除するのはデータだけでカラム情報が消えたり、ましてやテーブルそのものが消えることはありません。

例文

TRANCATE TABLE Table_1