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 で、有効な MicrosoftSQL Server 識別子ではない。オブジェクト名の長さが 0 の場合、修飾名全体が無効になります。詳細については、「オブジェクト名としての識別子の使用」を参照してください。

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

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

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

Object Name                    
------------------------------ 
Contact                        

(1 row(s) affected)

Schema Name                     
------------------------------ 
(null)                         

(1 row(s) affected)

Database Name                  
------------------------------ 
AdventureWorks                           

(1 row(s) affected)

Server Name                    
------------------------------ 
(null)                         

(1 row(s) affected)