PARSENAME (Transact-SQL)

適用対象: SQL Server Azure SQL データベース Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

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

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

Transact-SQL 構文表記規則

構文

PARSENAME ('object_name' , object_piece )

引数

'object_name'

指定したオブジェクト パーツを取得する対象のオブジェクトの名前を保持するパラメーター。 このパラメーターは、必要に応じて修飾されたオブジェクト名です。 オブジェクト名のすべての部分が修飾される場合、この名前には、サーバー名、データベース名、スキーマ名、オブジェクト名の 4 つの部分を指定可能です。

'object_name' 文字列の各部分は sysname で、 nvarchar(128) または 256 バイトと同じです。 文字列のいずれかの部分が 256 バイトを超える場合、PARSENAMEは有効な sysname ではないため、その部分のNULLを返します

object_piece

返すオブジェクトパーツ。 object_pieceint で、次のいずれかの値を指定できます。

Value 説明
1 オブジェクト名です。
2 スキーマ名
3 データベース名
4 サーバー名

戻り値の型

sysname

解説

PARSENAME は、次のいずれかの条件が true の場合、 NULL を返します。

  • object_nameまたはobject_pieceNULL

  • 構文エラーが発生した。

  • 要求されたオブジェクト 部分の長さは 0 で、有効な SQL Server 識別子ではありません。 長さ 0 のオブジェクト名は完全修飾名を無効とします。

次の例では使用 PARSENAME 情報を返す、 Person テーブルに、 AdventureWorks2022 データベース。

-- Uses AdventureWorks

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

結果セットは次のとおりです。

Object Name
------------------------------
Person

Schema Name
------------------------------
Person

Database Name
------------------------------
AdventureWorks2022

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