PARSENAME (Transact-SQL)

オブジェクト名の指定した部分を返します。取得できるオブジェクト名の部分は、オブジェクト名、所有者名、データベース名、およびサーバー名です。

注意

PARSENAME 関数では、指定した名前のオブジェクトが存在するかどうかは示されず、指定したオブジェクト名の指定した部分が返されるだけです。

トピック リンク アイコンTransact-SQL 構文表記規則

構文

PARSENAME ('object_name',object_piece )

引数

  • 'object_name'
    取得対象となるオブジェクトの名前を指定します。object_name のデータ型は sysname です。このパラメーターには、オブジェクトの部分的な修飾名を指定します (省略可能)。オブジェクトのすべての部分の修飾名を指定する場合は、サーバー名、データベース名、所有者名、およびオブジェクト名の 4 つの部分を指定できます。

  • object_piece
    返すオブジェクトの部分を指定します。object_piece のデータ型は int で、次のいずれかの値を指定できます。

    1 = オブジェクト名

    2 = スキーマ名

    3 = データベース名

    4 = サーバー名

戻り値の型

nchar

説明

PARSENAME では、次のいずれかの条件が真の場合に NULL が返されます。

  • object_name と object_piece のいずれかが NULL。

  • 構文エラーがある。

要求したオブジェクトの部分の長さが 0 で、有効な Microsoft SQL Server 識別子ではない。オブジェクト名の長さが 0 の場合、修飾名全体が無効になります。詳細については、「オブジェクト名としての識別子の使用」を参照してください。

次の例では、PARSENAME を使用して、AdventureWorks2008R2 データベース内の Person テーブルに関する情報を返します。

USE AdventureWorks2008R2;
SELECT PARSENAME('AdventureWorks2008R2..Person', 1) AS 'Object Name';
SELECT PARSENAME('AdventureWorks2008R2..Person', 2) AS 'Schema Name';
SELECT PARSENAME('AdventureWorks2008R2..Person', 3) AS 'Database Name';
SELECT PARSENAME('AdventureWorks2008R2..Person', 4) AS 'Server Name';
GO

以下に結果セットを示します。

Object Name

------------------------------

Person

(1 row(s) affected)

Schema Name

------------------------------

(null)

(1 row(s) affected)

Database Name

------------------------------

AdventureWorks2008R2

(1 row(s) affected)

Server Name

------------------------------

(null)

(1 row(s) affected)