PARSENAME (Transact-SQL)

適用範圍: 是SQL Server (所有支援的版本) 是Azure SQL Database 是Azure SQL 受控執行個體 是Azure Synapse Analytics 是平行處理資料倉儲

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

注意

PARSENAME 函數並不會指出指定名稱的物件是否存在。 PARSENAME 只會傳回指定物件名稱的指定部份。

主題連結圖示 Transact-SQL 語法慣例

語法

PARSENAME ('object_name' , object_piece )

注意

若要檢視 SQL Server 2014 與更早版本的 Transact-SQL 語法,請參閱舊版文件

引數

'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_nameobject_piece 是 NULL。

  • 發生語法錯誤。

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

範例

下列範例會利用 PARSENAME 來傳回 Person 資料庫中之 AdventureWorks2012 資料表的相關資訊。

-- 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)

另請參閱