OBJECTPROPERTYEX (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲
傳回目前資料庫中結構描述範圍物件的相關資訊。 如需這些物件的清單,請參閱 sys.objects (Transact-SQL)。 不是結構描述範圍的物件,如資料定義語言 (DDL) 觸發程序和事件通知,無法使用 OBJECTPROPERTYEX。
語法
OBJECTPROPERTYEX ( id , property )
引數
id
這是代表目前資料庫中之物件識別碼的運算式。 id 是 int,假設為目前資料庫內容中的結構描述範圍物件。
property
這是包含由識別碼指定之物件傳回資訊的運算式。傳回型別為 sql_variant。 下表顯示了每一屬性值的基底資料型別。
注意
除非另有說明,否則,當 property 不是有效屬性的名稱、id 不是有效的物件識別碼、id 對於指定的 property 是不支援的物件類型,或呼叫者無權檢視物件中繼資料時,便會傳回 NULL。
屬性名稱 | 物件類型 | 描述和傳回的值 |
---|---|---|
BaseType | 任何結構描述範圍物件 | 識別物件的基底類型。 當指定的物件為 SYNONYM 時,會傳回基礎物件的基底類型。 Nonnull = 物件類型 基底資料型別:char(2) |
CnstIsClustKey | 條件約束 | 含叢集索引的 PRIMARY KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
CnstIsColumn | 條件約束 | 單一資料行的 CHECK、DEFAULT 或 FOREIGN KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
CnstIsDeleteCascade | 條件約束 | 含 ON DELETE CASCADE 選項的 FOREIGN KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
CnstIsDisabled | 條件約束 | 停用的條件約束。 1 = True 0 = False 基底資料類型:int |
CnstIsNonclustKey | 條件約束 | 含非叢集索引的 PRIMARY KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
CnstIsNotRepl | 條件約束 | 條件約束是利用 NOT FOR REPLICATION 關鍵字來定義的。 1 = True 0 = False 基底資料類型:int |
CnstIsNotTrusted | 條件約束 | 啟用條件約束而不檢查現有的資料列。 因此,此條件約束可能不適用於所有資料列。 1 = True 0 = False 基底資料類型:int |
CnstIsUpdateCascade | 條件約束 | 含 ON UPDATE CASCADE 選項的 FOREIGN KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
ExecIsAfterTrigger | 觸發程序 | AFTER 觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsAnsiNullsOn | Transact-SQL 函數、Transact-SQL 程序、Transact-SQL 觸發程序、檢視 | 建立期間的 ANSI_NULLS 設定。 1 = True 0 = False 基底資料類型:int |
ExecIsDeleteTrigger | 觸發程序 | DELETE 觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsFirstDeleteTrigger | 觸發程序 | 當執行資料表的 DELETE 作業時,所引發的第一個觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsFirstInsertTrigger | 觸發程序 | 當執行資料表的 INSERT 作業時,所引發的第一個觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsFirstUpdateTrigger | 觸發程序 | 當執行資料表的 UPDATE 作業時,所引發的第一個觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsInsertTrigger | 觸發程序 | INSERT 觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsInsteadOfTrigger | 觸發程序 | INSTEAD OF 觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsLastDeleteTrigger | 觸發程序 | 當執行資料表的 DELETE 作業時,所引發的最後一個觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsLastInsertTrigger | 觸發程序 | 當執行資料表的 INSERT 作業時,所引發的最後一個觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsLastUpdateTrigger | 觸發程序 | 當執行資料表的 UPDATE 作業時,所引發的最後一個觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsQuotedIdentOn | Transact-SQL 函數、Transact-SQL 程序、Transact-SQL 觸發程序、檢視 | 建立期間的 QUOTED_IDENTIFIER 設定。 1 = True 0 = False 基底資料類型:int |
ExecIsStartup | 程序 | 啟動程序。 1 = True 0 = False 基底資料類型:int |
ExecIsTriggerDisabled | 觸發程序 | 停用的觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsTriggerNotForRepl | 觸發程序 | 定義為 NOT FOR REPLICATION 的觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsUpdateTrigger | 觸發程序 | UPDATE 觸發程序。 1 = True 0 = False 基底資料類型:int |
ExecIsWithNativeCompilation | Transact-SQL 程序 | 適用於:SQL Server 2014 (12.x) 和更新版本。 此為原生編譯的程序。 1 = True 0 = False 基底資料類型:int |
HasAfterTrigger | 資料表、檢視表 | 資料表或檢視表有 AFTER 觸發程序。 1 = True 0 = False 基底資料類型:int |
HasDeleteTrigger | 資料表、檢視表 | 資料表或檢視表有 DELETE 觸發程序。 1 = True 0 = False 基底資料類型:int |
HasInsertTrigger | 資料表、檢視表 | 資料表或檢視表有 INSERT 觸發程序。 1 = True 0 = False 基底資料類型:int |
HasInsteadOfTrigger | 資料表、檢視表 | 資料表或檢視表有 INSTEAD OF 觸發程序。 1 = True 0 = False 基底資料類型:int |
HasUpdateTrigger | 資料表、檢視表 | 資料表或檢視表有 UPDATE 觸發程序。 1 = True 0 = False 基底資料類型:int |
IsAnsiNullsOn | Transact-SQL 函數、Transact-SQL 程序、資料表、Transact-SQL 觸發程序、檢視 | 指定資料表的 ANSI NULLS 選項設定為 ON,表示所有與空值的比較都會得出 UNKNOWN。 只要資料表存在,這項設定便適用於資料表定義中的所有運算式,其中包括計算資料行和條件約束。 1 = True 0 = False 基底資料類型:int |
IsCheckCnst | 任何結構描述範圍物件 | CHECK 條件約束。 1 = True 0 = False 基底資料類型:int |
IsConstraint | 任何結構描述範圍物件 | 條件約束。 1 = True 0 = False 基底資料類型:int |
IsDefault | 任何結構描述範圍物件 | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 繫結預設值。 1 = True 0 = False 基底資料類型:int |
IsDefaultCnst | 任何結構描述範圍物件 | DEFAULT 條件約束。 1 = True 0 = False 基底資料類型:int |
IsDeterministic | 純量函數和資料表值函式、檢視表 | 函數或檢視表的決定性屬性。 1 = 具有決定性 0 = 不具決定性 基底資料類型:int |
IsEncrypted | Transact-SQL 函數、Transact-SQL 程序、資料表、Transact-SQL 觸發程序、檢視 | 指出此模組陳述式的原始文字已轉換為混亂格式。 在 SQL Server 2005 (9.x) 中,任何目錄檢視都無法直接看見混淆的輸出。 對系統資料表或資料庫檔案沒有存取權的使用者,將無法擷取模糊化的文字。 不過,可以透過 DAC 通訊埠存取系統資料表,或直接存取資料庫檔案的使用者,則可使用該文字。 另外,可將偵錯工具附加至伺服器處理序的使用者,可以在執行階段從記憶體擷取原始程序。 1 = 已加密 0 = 未加密 基底資料類型:int |
IsExecuted | 任何結構描述範圍物件 | 指定可以執行物件 (檢視、程序、函數或觸發程序)。 1 = True 0 = False 基底資料類型:int |
IsExtendedProc | 任何結構描述範圍物件 | 擴充程序。 1 = True 0 = False 基底資料類型:int |
IsForeignKey | 任何結構描述範圍物件 | FOREIGN KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
IsIndexed | 資料表、檢視表 | 含索引的資料表或檢視表。 1 = True 0 = False 基底資料類型:int |
IsIndexable | 資料表、檢視表 | 可以建立索引的資料表或檢視表。 1 = True 0 = False 基底資料類型:int |
IsInlineFunction | 函式 | 內嵌函數。 1 = 內嵌函數 0 = 非內嵌函數 基底資料類型:int |
IsMSShipped | 任何結構描述範圍物件 | 安裝 SQL Server 時建立的物件。 1 = True 0 = False 基底資料類型:int |
IsPrecise | 已計算的資料行、函數、使用者自訂類型、檢視表 | 指出物件是否包含浮點運算等不精確的計算。 1 = 精確 0 = 不精確 基底資料類型:int |
IsPrimaryKey | 任何結構描述範圍物件 | PRIMARY KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
IsProcedure | 任何結構描述範圍物件 | 程序。 1 = True 0 = False 基底資料類型:int |
IsQuotedIdentOn | 檢查條件約束、預設定義、Transact-SQL 函數、Transact-SQL 程序、資料表、Transact-SQL 觸發程序、檢視 | 指定物件的引用識別碼設定為 ON,表示雙引號可在與物件定義有關的所有運算式中分隔識別碼。 1 = True 0 = False 基底資料類型:int |
IsQueue | 任何結構描述範圍物件 | Service Broker 佇列 1 = True 0 = False 基底資料類型:int |
IsReplProc | 任何結構描述範圍物件 | 複寫程序。 1 = True 0 = False 基底資料類型:int |
IsRule | 任何結構描述範圍物件 | 繫結規則。 1 = True 0 = False 基底資料類型:int |
IsScalarFunction | 函式 | 純量值函式。 1 = 純量值函式 0 = 非純量值函式 基底資料類型:int |
IsSchemaBound | 函數、程序、檢視 | 利用 SCHEMABINDING 來建立的結構描述繫結函數或檢視表。 1 = 結構描述繫結 0 = 非結構描述繫結 基底資料類型:int |
IsSystemTable | Table | 系統資料表。 1 = True 0 = False 基底資料類型:int |
IsSystemVerified | 已計算的資料行、函數、使用者自訂類型、檢視表 | SQL Server 可以驗證物件的有效位數和決定性屬性。 1 = True 0 = False 基底資料類型:int |
IsTable | Table | 資料表。 1 = True 0 = False 基底資料類型:int |
IsTableFunction | 函式 | 資料表值函式。 1 = 資料表值函式 0 = 非資料表值函式 基底資料類型:int |
IsTrigger | 任何結構描述範圍物件 | 觸發程序。 1 = True 0 = False 基底資料類型:int |
IsUniqueCnst | 任何結構描述範圍物件 | UNIQUE 條件約束。 1 = True 0 = False 基底資料類型:int |
IsUserTable | Table | 使用者自訂資料表。 1 = True 0 = False 基底資料類型:int |
IsView | 檢視 | 檢視表。 1 = True 0 = False 基底資料類型:int |
OwnerId | 任何結構描述範圍物件 | 物件的擁有者。 注意: 結構描述擁有者不一定是物件擁有者。 例如,子物件 (其 parent_object_id 非 Null) 一律會傳回與父系相同的擁有者識別碼。 Nonnull = 物件擁有者的資料庫使用者識別碼。 NULL = 不支援的物件類型,或物件識別碼無效。 基底資料類型:int |
SchemaId | 任何結構描述範圍物件 | 與物件相關聯的結構描述識別碼。 Nonnull = 物件的結構描述識別碼。 基底資料類型:int |
SystemDataAccess | 函數、檢視表 | 物件可存取 SQL Server 本機執行個體中的系統資料、系統目錄或虛擬系統資料表。 0 = 無 1 = 讀取 基底資料類型:int |
TableDeleteTrigger | Table | 資料表有 DELETE 觸發程序。 >1 = 具有指定類型的第一個觸發程序識別碼。 基底資料類型:int |
TableDeleteTriggerCount | Table | 資料表有指定數目的 DELETE 觸發程序。 Nonnull = DELETE 觸發程序的數量 基底資料類型:int |
TableFullTextMergeStatus | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 資料表是否具有目前正在合併的全文檢索索引。 0 = 資料表沒有全文檢索索引,或是全文檢索索引並未合併。 1 = 全文檢索索引正在合併。 |
TableFullTextBackgroundUpdateIndexOn | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 資料表啟用了全文檢索的背景更新索引 (自動變更追蹤)。 1 = TRUE 0 = FALSE 基底資料類型:int |
TableFulltextCatalogId | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 資料表的全文檢索索引資料所在的全文檢索目錄識別碼。 非零 = 全文檢索目錄識別碼,關聯於用來識別全文檢索索引資料表中的資料列之唯一索引。 0 = 資料表沒有全文檢索索引。 基底資料類型:int |
TableFullTextChangeTrackingOn | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 資料表啟用全文檢索變更追蹤。 1 = TRUE 0 = FALSE 基底資料類型:int |
TableFulltextDocsProcessed | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 全文檢索索引啟動之後所處理的資料列數。 在建立全文檢索搜尋索引的資料表中,單一資料列的所有資料行都會被視為單一文件的一部分來建立索引。 0 = 沒有使用中的搜耙,或全文檢索索引已完成。 > 0 = A 或 B 其中之一:A) 在啟動完整、累加或手動變更追蹤母體之後,插入或更新作業所處理的文件數目;B) 啟用含背景更新索引母體的變更追蹤、變更全文檢索索引結構描述、重建全文檢索目錄,或重新啟動 SQL Server 執行個體等作業之後,插入或更新作業所處理的資料列數。 NULL = 資料表沒有全文檢索索引。 基底資料類型:int 注意:這個屬性不會監視或計算已刪除的資料列。 |
TableFulltextFailCount | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 全文檢索搜尋功能尚未建立索引的資料列數。 0 = 母體擴展已完成。 >0 = A 或 B 其中之一:A) 啟動完整、累加或手動更新變更追蹤母體之後,尚未建立索引的文件數目;B) 對於背景更新索引的變更追蹤,在開始母體或重新開始母體之後,尚未建立索引的資料列數。 這可能是結構描述變更、重建目錄、伺服器重新啟動等所造成的。 NULL = 資料表沒有全文檢索索引。 基底資料類型:int |
TableFulltextItemCount | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 Nonnull = 已順利建立全文檢索索引的資料列數。 NULL = 資料表沒有全文檢索索引。 基底資料類型:int |
TableFulltextKeyColumn | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 屬於全文檢索索引和語意索引定義一部分之單一資料行唯一索引的相關資料行識別碼。 0 = 資料表沒有全文檢索索引。 基底資料類型:int |
TableFulltextPendingChanges | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 要處理的暫止變更追蹤項目數。 0 = 未啟用變更追蹤。 NULL = 資料表沒有全文檢索索引。 基底資料類型:int |
TableFulltextPopulateStatus | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 0 = 閒置。 1 = 完整母體擴展在進行中。 2 = 累加母體擴展在進行中。 3 = 追蹤變更的傳播在進行中。 4 = 背景更新索引在進行中,如自動變更追蹤。 5 = 全文檢索索引在調整執行速度或暫停。 6 = 發生錯誤。 請檢查搜耙記錄以取得詳細資料。 如需詳細資訊,請參閱擴展全文檢索索引中為全文檢索母體擴展 (搜耙) 中的錯誤疑難排解章節。 基底資料類型:int |
TableFullTextSemanticExtraction | Table | 適用於:SQL Server 2012 (11.x) 和更新版本。 資料表啟用語意索引。 1 = True 0 = False 基底資料類型:int |
TableHasActiveFulltextIndex | Table | 適用於:SQL Server 2008 (10.0.x) 和更新版本。 資料表有使用中的全文檢索索引。 1 = True 0 = False 基底資料類型:int |
TableHasCheckCnst | Table | 資料表有 CHECK 條件約束。 1 = True 0 = False 基底資料類型:int |
TableHasClustIndex | Table | 資料表有叢集索引。 1 = True 0 = False 基底資料類型:int |
TableHasDefaultCnst | Table | 資料表有 DEFAULT 條件約束。 1 = True 0 = False 基底資料類型:int |
TableHasDeleteTrigger | Table | 資料表有 DELETE 觸發程序。 1 = True 0 = False 基底資料類型:int |
TableHasForeignKey | Table | 資料表有 FOREIGN KEY 條件約束。 1 = True 0 = False 基底資料類型:int |
TableHasForeignRef | Table | 資料表由 FOREIGN KEY 條件約束參考。 1 = True 0 = False 基底資料類型:int |
TableHasIdentity | Table | 資料表有識別欄位。 1 = True 0 = False 基底資料類型:int |
TableHasIndex | Table | 資料表有任何類型的索引。 1 = True 0 = False 基底資料類型:int |
TableHasInsertTrigger | Table | 物件有 INSERT 觸發程序。 1 = True 0 = False 基底資料類型:int |
TableHasNonclustIndex | Table | 資料表有非叢集索引。 1 = True 0 = False 基底資料類型:int |
TableHasPrimaryKey | Table | 資料表有主索引鍵。 1 = True 0 = False 基底資料類型:int |
TableHasRowGuidCol | Table | 資料表有 uniqueidentifier 資料行的 ROWGUIDCOL。 1 = True 0 = False 基底資料類型:int |
TableHasTextImage | Table | 資料表有 text、ntext 或 image 資料行。 1 = True 0 = False 基底資料類型:int |
TableHasTimestamp | Table | 資料表有 timestamp 資料行。 1 = True 0 = False 基底資料類型:int |
TableHasUniqueCnst | Table | 資料表有 UNIQUE 條件約束。 1 = True 0 = False 基底資料類型:int |
TableHasUpdateTrigger | Table | 物件有 UPDATE 觸發程序。 1 = True 0 = False 基底資料類型:int |
TableHasVarDecimalStorageFormat | Table | 資料表可使用 vardecimal 儲存格式。 1 = True 0 = False |
TableInsertTrigger | Table | 資料表有 INSERT 觸發程序。 >1 = 具有指定類型的第一個觸發程序識別碼。 基底資料類型:int |
TableInsertTriggerCount | Table | 資料表有指定數目的 INSERT 觸發程序。 >0 = INSERT 觸發程序的數目。 基底資料類型:int |
TableIsFake | Table | 資料表不是真正的資料表。 資料庫引擎會依需求在內部具體化。 1 = True 0 = False 基底資料類型:int |
TableIsLockedOnBulkLoad | Table | 資料表因 bcp 或 BULK INSERT 作業而鎖定。 1 = True 0 = False 基底資料類型:int |
TableIsMemoryOptimized | Table | 適用於:SQL Server 2014 (12.x) 和更新版本。 資料表是記憶體最佳化的 1 = True 0 = False 基底資料類型:int 如需詳細資訊,請參閱 In-Memory OLTP (記憶體中最佳化)。 |
TableIsPinned | Table | 資料表固定保留在資料快取中。 0 = False SQL Server 2005 (9.x) 和更新版本不支援此功能。 |
TableTextInRowLimit | Table | 資料表有 text in row 選項集。 > 0 = text in row 所允許的最大位元組數目。 0 = 未設定 text in row 選項。 基底資料類型:int |
TableUpdateTrigger | Table | 資料表有 UPDATE 觸發程序。 > 1 = 具有指定類型的第一個觸發程序識別碼。 基底資料類型:int |
TableUpdateTriggerCount | Table | 資料表有指定數目的 UPDATE 觸發程序。 > 0 = UPDATE 觸發程序的數目。 基底資料類型:int |
UserDataAccess | 函數、檢視表 | 表示物件可存取本機 SQL Server 執行個體中的使用者資料及使用者資料表。 1 = 讀取 0 = 無 基底資料類型:int |
TableHasColumnSet | Table | 資料表有資料行集。 0 = False 1 = True 如需詳細資訊,請參閱 使用資料行集。 |
基數 | 資料表 (系統或使用者定義)、檢視表或索引 | 適用於:SQL Server 2012 (11.x) 和更新版本。 指定之物件中的資料列數目。 |
TableTemporalType | Table | 適用於:SQL Server 2016 (13.x) 和更新版本。 指定資料表的類型。 0 = 非時態表 1 = 系統版本設定資料表的記錄資料表 2 = 系統版本設定的時態表 |
傳回型別
sql_variant
例外狀況
當發生錯誤,或呼叫端沒有檢視物件的權限時,便會傳回 NULL。
使用者只能檢視使用者擁有或被授與某些權限之安全性實體的中繼資料。 這表示發出中繼資料的內建函數 (例如,OBJECTPROPERTYEX) 會在使用者不具有該物件任何權限時傳回 NULL。 如需相關資訊,請參閱 Metadata Visibility Configuration。
備註
資料庫引擎假設 object_id 在目前的資料庫內容中。 參考另一資料庫中之 object_id 的查詢會傳回 NULL 或不正確的結果。 例如,在下列查詢中,目前資料庫內容是 master 資料庫。 資料庫引擎會嘗試傳回該資料庫中指定的 object_id 屬性值,而不是查詢中所指定的資料庫。 查詢會傳回不正確的結果,因為 vEmployee
檢視表不在 master 資料庫中。
USE master;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'AdventureWorks2022.HumanResources.vEmployee'), 'IsView');
GO
OBJECTPROPERTYEX(view_id, 'IsIndexable') 可能耗用大量電腦資源,因為評估 IsIndexable 屬性需要剖析檢視定義、正規化和部分最佳化。 雖然 IsIndexable 屬性會識別能夠建立索引的資料表或檢視表,但如果不符合特定索引鍵需求,實際建立索引的作業仍可能失敗。 如需詳細資訊,請參閱 CREATE FULLTEXT CATALOG (TRANSACT-SQL)。
當至少加入資料表的一個資料行來建立索引時,OBJECTPROPERTYEX (table_id, 'TableHasActiveFulltextIndex') 會傳回 1 (true) 這個值。 只要加入第一個用來建立索引的資料行,全文檢索索引作業就會成為使用中,以便擴展。
結果集會套用中繼資料可見性的限制。 如需相關資訊,請參閱 Metadata Visibility Configuration。
範例
A. 找出物件的基底類型
以下的範例在 AdventureWorks2022
資料庫中為 MyEmployeeTable
資料表建立了 SYNONYM Employee
,然後傳回 SYNONYM 的基底類型。
USE AdventureWorks2022;
GO
CREATE SYNONYM MyEmployeeTable FOR HumanResources.Employee;
GO
SELECT OBJECTPROPERTYEX ( object_id(N'MyEmployeeTable'), N'BaseType')AS [Base Type];
GO
結果集顯示基礎物件 (Employee
資料表) 的基底類型是使用者資料表。
Base Type
--------
U
B. 傳回屬性值
以下的範例傳回了指定資料表的 UPDATE 觸發程序數量。
USE AdventureWorks2022;
GO
SELECT OBJECTPROPERTYEX(OBJECT_ID(N'HumanResources.Employee'), N'TABLEUPDATETRIGGERCOUNT');
GO
C. 尋找具有 FOREIGN KEY 條件約束的資料表
下列範例使用 TableHasForeignKey
屬性來傳回具有 FOREIGN KEY 條件約束的所有資料表。
USE AdventureWorks2022;
GO
SELECT name, object_id, schema_id, type_desc
FROM sys.objects
WHERE OBJECTPROPERTYEX(object_id, N'TableHasForeignKey') = 1
ORDER BY name;
GO
範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
D:找出物件的基底類型
下列範例會傳回 dbo.DimReseller
物件的基底類型。
-- Uses AdventureWorks
SELECT OBJECTPROPERTYEX ( object_id(N'dbo.DimReseller'), N'BaseType')AS BaseType;
結果集顯示基礎物件 (dbo.DimReseller
資料表) 的基底類型是使用者資料表。
BaseType
--------
U
另請參閱
CREATE SYNONYM (Transact-SQL)
中繼資料函數 (Transact-SQL)
OBJECT_DEFINITION (Transact-SQL)
OBJECT_ID (Transact-SQL)
OBJECT_NAME (Transact-SQL)
sys.objects (Transact-SQL)
ALTER AUTHORIZATION (Transact-SQL)
TYPEPROPERTY (Transact-SQL)