分享方式:


PARSENAME (Transact-SQL)

適用於: SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW)

傳回物件名稱的指定部分。 物件可擷取的部分包含物件名稱、結構描述名稱、資料庫名稱及伺服器名稱。

PARSENAME 不會指出指定名稱的物件是否存在。 PARSENAME 只會傳回指定之物件名稱的指定部分。

Transact-SQL 語法慣例

語法

PARSENAME ('object_name' , object_piece )

引數

'object_name'

保存要擷取指定之物件元件之物件名稱的參數。 此參數是選擇性限定的物件名稱。 若限定了物件名稱的所有部分,則此名稱會有四個部分:伺服器名稱、資料庫名稱、結構描述名稱及物件名稱。

'object_name' 字串的每個部分都是 sysname,相當於 nvarchar(128) 或 256 個字節。 如果字串的任何部分超過 256 個字節, PARSENAME 則傳回 NULL 該部分,因為它不是有效的 sysname

object_piece

要傳回的物件元件。 object_piece為 int,而且可以是下列其中一個值:

名稱
1 物件名稱
2 結構描述名稱
3 資料庫名稱
4 伺服器名稱

傳回類型

sysname

備註

PARSENAME 如果下列其中一個條件成立, 則傳 NULL 回 :

  • object_name或object_pieceNULL

  • 發生語法錯誤。

  • 要求的物件元件長度 0 為 ,且不是有效的 SQL Server 識別碼。 長度為零的物件名稱會將完整名稱轉譯為無效。

範例

下列範例會利用 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)