PARSENAME (Transact-SQL)

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

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

Note

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

Transact-SQL 構文表記規則

構文

PARSENAME ('object_name' , object_piece )

Note

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

引数

'object_name' は、取得対象となるオブジェクトの名前を保持するパラメーターです。 このパラメーターは、必要に応じて修飾されたオブジェクト名です。 オブジェクト名のすべての部分が修飾される場合、この名前には、サーバー名、データベース名、スキーマ名、オブジェクト名の 4 つの部分を指定可能です。 'object_name' 文字列の各部分は、nvarchar(128) または 256 バイトに相当する sysname 型です。 文字列のいずれかの部分が 256 バイトを超える場合、有効な sysname ではないため、PARSENAME はその部分に対して NULL を返します。

object_piece
返すオブジェクトの部分を指定します。 object_piece のデータ型は int, 、これらの値を持つことができます。
1 = オブジェクト名
2 = スキーマ名
3 = データベース名
4 = サーバー名

戻り値の型

sysname

解説

次のいずれかの条件に該当する場合、PARSENAME は NULL を返します。

  • いずれか object_name または object_piece は NULL です。

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

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

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

-- Uses AdventureWorks  
  
SELECT PARSENAME('AdventureWorksPDW2012.dbo.DimCustomer', 1) AS 'Object Name';  
SELECT PARSENAME('AdventureWorksPDW2012.dbo.DimCustomer', 2) AS 'Schema Name';  
SELECT PARSENAME('AdventureWorksPDW2012.dbo.DimCustomer', 3) AS 'Database Name';  
SELECT PARSENAME('AdventureWorksPDW2012.dbo.DimCustomer', 4) AS 'Server Name';  
GO  

結果セットは次のようになります。

Object Name
------------------------------
DimCustomer

(1 row(s) affected)

Schema Name
------------------------------
dbo

(1 row(s) affected)

Database Name
------------------------------
AdventureWorksPDW2012

(1 row(s) affected)

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

(1 row(s) affected)

参照