Share via


PARSENAME (Transact-SQL)

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

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

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

Transact-SQL 構文表記規則

構文

PARSENAME ('object_name' , object_piece )

Note

SQL Server 2014 (12.x) 以前のバージョンの Transact-SQL 構文を確認するには、以前のバージョンのドキュメントを参照してください。

引数

'object_name'

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

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

object_piece

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

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

戻り値の型

sysname

解説

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

  • object_nameまたはobject_pieceは ですNULL

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

  • 要求されたオブジェクト 部分の長さは 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)