Transact-SQL 構文表記規則 (Transact-SQL)

適用対象: はいSQL Server (サポートされているすべてのバージョン) はいAzure SQL データベース はいAzure SQL Managed Instance はいAzure Synapse Analytics はいParallel Data Warehouse

次の表は、Transact-SQL リファレンスの構文で使用している表記規則について示しています。

表記 使用目的
UPPERCASE Transact-SQL キーワードを示します。
斜体 ユーザーが指定する Transact-SQL 構文のパラメーターを示します。
太字 データベース名、テーブル名、列名、インデックス名、ストアド プロシージャ、ユーティリティ、データ型名、およびテキストを、記載されているとおりに入力します。
下線 下線が引かれている値を含む句がステートメントから省略されているときに適用される既定値を示します。
| (垂直線) 角かっこ、または中かっこで囲まれた構文項目を区切ります。 使用できる項目は 1 つだけです。
[ ] (角かっこ) 省略可能な構文項目。 角かっこは入力しません。
{} (中かっこ) 必須の構文項目を示します。 中かっこは入力しません。
[ , ...n] 先行する項目を n 回繰り返せることを示します。 出現箇所は、コンマで区切られます。
[...n] 先行する項目を n 回繰り返せることを示します。 項目は空白で区切ります。
; Transact-SQL ステートメントの終端記号を示します。 セミコロンは、このバージョンの SQL Server のほとんどのステートメントでは必須ではありませんが、将来のバージョンでは必須になる予定です。
<label> ::= 構文のブロックの名前を示します。 この表記規則を使用して、1 つのステートメント内の複数の箇所で使用できる長い構文の一部、または構文の 1 単位について、グループ化してラベルを付けます。 構文のブロックを使用できる箇所は、シェブロンで囲まれたラベル (<label>) で示します。

セットとは、式のコレクションです (たとえば <grouping set>)。リストとは、セットのコレクションです (たとえば <composite element list>)。

マルチパート名

特に指定のない限り、データベース オブジェクトの名前に対するすべての Transact-SQL 参照は、次のような 4 部構成の名前の形式をとります。

server_name.[database_name].[schema_name].object_name

| database_name.[schema_name].object_name

| schema_name.object_name

| object_name

server_name
リンク サーバー名またはリモート サーバー名を示します。

database_name
オブジェクトが SQL Server のローカル インスタンスに存在するときは、SQL Server データベースの名前を指定します。 オブジェクトがリンク サーバーに存在するとき、database_name には OLE DB カタログを指定します。

schema_name
オブジェクトが SQL Server データベースに存在する場合は、そのオブジェクトを含むスキーマの名前を示します。 オブジェクトがリンク サーバーに存在するとき、schema_name には OLE DB スキーマ名を指定します。

object_name
オブジェクトの名前を示します。

特定のオブジェクトを参照する場合、SQL Server データベース エンジン にオブジェクトを識別させるために、必ずしもサーバー、データベース、所有者を指定する必要はありません。 ただし、オブジェクトが見つからない場合は、エラーが返されます。

注意

名前解決のエラーを回避するために、スキーマ スコープ オブジェクトを指定するときは、常にスキーマ名を指定することをお勧めします。

中間のノードを省略するには、ピリオドを使用してそれらの位置を示します。 次の表に、オブジェクト名の有効な形式を示します。

オブジェクト参照形式 説明
server.database.schema.object 4 部構成の名前です。
server.database..object スキーマ名を省略しています。
server..schema.object データベース名を省略しています。
server...object データベースとスキーマ名を省略しています。
database.schema.object サーバー名を省略しています。
database..object サーバーとスキーマ名を省略しています。
schema.object サーバーとデータベース名を省略しています。
object サーバー、データベース、およびスキーマ名を省略しています。

コード例の規則

特に断りのない限り、Transact-SQL リファレンスで提供されている例は、SQL Server Management Studio を使用し、次のオプションを既定の設定にしてテストされています。

  • ANSI_NULLS
  • ANSI_NULL_DFLT_ON
  • ANSI_PADDING
  • ANSI_WARNINGS
  • CONCAT_NULL_YIELDS_NULL
  • QUOTED_IDENTIFIER

Transact-SQL リファレンスのほとんどのコード例は、大文字と小文字を区別する並べ替え順を使用するサーバーでテストされています。 通常、テスト サーバーでは、ANSI/ISO 1252 コード ページが使用されています。

多くのコード例では、Unicode 文字列定数に N という文字をプレフィックスとして加えています。プレフィックス N がない場合、文字列はデータベースの既定のコード ページに変換されます。 この既定のコード ページでは、一部の文字が認識されない場合があります。

"適用対象" リファレンス

Transact-SQL リファレンスには、SQL Server (SQL Server 2008 以降)、Azure SQL データベース、Azure Synapse Analytics に関連する記事が含まれています。

各記事の先頭近くに、記事の主題をサポートする製品を示すセクションがあります。 製品が省略されている場合、記事で説明されている機能は、その製品では使用できません。 たとえば、可用性グループは SQL Server 2012 (11.x) で導入されました。 CREATE AVAILABILITY GROUP の記事は、SQL Server 2008、SQL Server 2008 R2、Azure SQL データベース に適用されないため、SQL Server (SQL Server 2012 (11.x) 以降) が適用対象と記載されています。

場合によっては、記事の一般的な主題を製品で使用できますが、すべての引数がサポートされるわけではありません。 たとえば、包含データベース ユーザーは SQL Server 2012 (11.x) で導入されました。 CREATE USER ステートメントはすべての SQL Server 製品で使用できますが、WITH PASSWORD 構文は以前のバージョンでは使用できません。 記事の本文の適切な引数の説明に、「適用対象」セクションが追加で挿入されます。

参照

TRANSACT-SQL リファレンス (データベース エンジン)
予約済みキーワード (Transact-SQL)
Transact-SQL の設計の問題
Transact-SQL の名前付けの問題
Transact-SQL のパフォーマンスの問題