【SQL基础】T-SQL函数类型——元数据函数
???? 一般來(lái)說(shuō),元數(shù)據(jù)函數(shù)返回的是有關(guān)指定數(shù)據(jù)庫(kù)和數(shù)據(jù)對(duì)象的信息。下面介紹幾種元數(shù)據(jù)函數(shù)。
??? 1、COL_NAME(tab_id,col_id),返回表tab_id的tab_id的列名。
??? 例:selectCOL_NAME(OBJECT_ID('employees'),3); 結(jié)果為’FirstName’
??? 2、COLUMNPROPERTY(id,col,property),返回指定列的信息。property屬于以下值:
| 值 | 說(shuō)明 |
| AllowsNull | 允許空值。1 = TRUE,0 = FALSE,NULL = 輸入無(wú)效。 |
| ColumnId | 對(duì)應(yīng)于 sys.columns.column_id 的列 ID 值。 |
| FullTextTypeColumn | 表中的 TYPE COLUMN,其中包含 column 的文檔類型信息。 |
| IsComputed | 列是計(jì)算列。1 = TRUE,0 = FALSE,NULL = 輸入無(wú)效。 |
| IsCursorType | 過(guò)程參數(shù)類型為 CURSOR。1 = TRUE,0 = FALSE,NULL = 輸入無(wú)效。 |
| IsDeterministic | 列是確定性列。此屬性只適用于計(jì)算列和視圖列。1 = TRUE,0 = FALSE,NULL = 輸入無(wú)效。非計(jì)算列或視圖列。 |
| IsFulltextIndexed | 列已經(jīng)注冊(cè)為全文索引。1 = TRUE,0 = FALSE,NULL = 輸入無(wú)效。 |
| IsIdentity | 列使用 IDENTITY 屬性。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsIdNotForRepl | 列檢查 IDENTITY_INSERT 設(shè)置。如果指定了 IDENTITY NOT FOR REPLICATION,則不檢查 IDENTITY_INSERT 設(shè)置。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsIndexable | 可以對(duì)列進(jìn)行索引。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsOutParam | 過(guò)程參數(shù)是輸出參數(shù)。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsPrecise | 列是精確列。此屬性只適用于確定性列。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsRowGuidCol | 列具有 uniqueidentifier 數(shù)據(jù)類型,并且定義了 ROWGUIDCOL 屬性。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsSystemVerified | 列的確定性和精度屬性可以使用 數(shù)據(jù)庫(kù)引擎 驗(yàn)證。此屬性只應(yīng)用于計(jì)算列和視圖中的列。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsXmlIndexable | 可以在 XML 索引中使用 XML 列。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| Precision | 列或參數(shù)的數(shù)據(jù)類型的長(zhǎng)度。指定的列數(shù)據(jù)類型的長(zhǎng)度,-1 = xml 或大值類型,NULL = 輸入無(wú)效。 |
| Scale | 列或參數(shù)的數(shù)據(jù)類型的小數(shù)位數(shù)。 |
| SystemDataAccess | 列是由訪問(wèn) SQL Server 的系統(tǒng)目錄或虛擬系統(tǒng)表中數(shù)據(jù)的函數(shù)派生的。此屬性只應(yīng)用于計(jì)算列和視圖中的列。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| UserDataAccess | 列是由訪問(wèn)儲(chǔ)存于 SQL Server 本地實(shí)例的用戶表中數(shù)據(jù)的函數(shù)派生的。此屬性只應(yīng)用于計(jì)算列和視圖中的列。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| UsesAnsiTrim | 第一次創(chuàng)建表時(shí),ANSI_PADDING 設(shè)置為 ON。此屬性僅應(yīng)用于列或者 char 或 varchar 類型的參數(shù)。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsSparse | 列為稀疏列。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
| IsColumnSet | 列為列集。1 = TRUE,0 = FALSE, NULL = 輸入無(wú)效。 |
??? 3、DATABASEPROPERYTY(database,property),返回指定的數(shù)據(jù)庫(kù)的指定數(shù)據(jù)庫(kù)屬性值。
??? 4、DB_ID([db_name]),返回?cái)?shù)據(jù)庫(kù)的db_name的標(biāo)識(shí)符,即返回當(dāng)前數(shù)據(jù)庫(kù)的標(biāo)識(shí)符。
??? 例:?? selectDB_ID('Master'),結(jié)果為1
??? 5、DB_NAME([db_id]),返回帶有標(biāo)識(shí)符db_id的數(shù)據(jù)庫(kù)名,如果沒(méi)有指定標(biāo)識(shí)符,就顯示當(dāng)前數(shù)據(jù)名稱。
??? 例:selectDB_NAME(1),結(jié)果為’master’
??? 6、INDEX_COL(table,i,no),返回表table中的索引列,該索引列有索引標(biāo)識(shí)符i及該列在索引中的位置no指定。
??? 7、INDEXPROPERY(obj_id,index_name,property),返回指定表標(biāo)識(shí)號(hào)、索引或統(tǒng)計(jì)名稱及屬性名稱的指定索引值或統(tǒng)計(jì)屬性值。
??? 8、OBJECT_NAME(obj_id),返回有標(biāo)識(shí)符obj_id的數(shù)據(jù)庫(kù)對(duì)象名稱。
??? 例:selectOBJECT_NAME(245575913),結(jié)果為‘Products’
??? 9、OBJECT_ID(obj_name),返回?cái)?shù)據(jù)庫(kù)對(duì)象obj_name對(duì)應(yīng)的標(biāo)識(shí)符。
??? 例:selectOBJECT_ID('products'); 結(jié)果為245575913
??? 9、OBJECTPROPERTY(obj_id,property),返回當(dāng)前數(shù)據(jù)對(duì)象。property為以下值:
| 屬性名稱 | 說(shuō)明 |
| CnstIsClustKey | 具有聚集索引的 PRIMARY KEY 約束。1 = True,0 = False |
| CnstIsColumn | 單個(gè)列上的 CHECK、DEFAULT 或 FOREIGN KEY 約束。1 = True,0 = False |
| CnstIsDeleteCascade | 具有 ON DELETE CASCADE 選項(xiàng)的 FOREIGN KEY 約束。1 = True,0 = False |
| CnstIsDisabled | 禁用的約束。1 = True,0 = False |
| CnstIsNonclustKey | 非聚集索引的 PRIMARY KEY 或 UNIQUE 約束。1 = True,0 = False |
| CnstIsNotRepl | 使用 NOT FOR REPLICATION 關(guān)鍵字定義的約束。1 = True,0 = False |
| CnstIsNotTrusted | 啟用約束時(shí)未檢查現(xiàn)有行,因此可能不是所有行都適用該約束。1 = True,0 = False |
| CnstIsUpdateCascade | 具有 ON UPDATE CASCADE 選項(xiàng)的 FOREIGN KEY 約束。1 = True,0 = False |
| ExecIsAfterTrigger | AFTER 觸發(fā)器。1 = True,0 = False |
| ExecIsAnsiNullsOn | 創(chuàng)建時(shí)的 ANSI_NULLS 設(shè)置。1 = True,0 = False |
| ExecIsDeleteTrigger | DELETE 觸發(fā)器。1 = True,0 = False |
| ExecIsFirstDeleteTrigger | 對(duì)表執(zhí)行 DELETE 時(shí)觸發(fā)的第一個(gè)觸發(fā)器。1 = True,0 = False |
| ExecIsFirstInsertTrigger | 對(duì)表執(zhí)行 INSERT 時(shí)觸發(fā)的第一個(gè)觸發(fā)器。1 = True,0 = False |
| ExecIsFirstUpdateTrigger | 對(duì)表執(zhí)行 UPDATE 時(shí)觸發(fā)的第一個(gè)觸發(fā)器。1 = True,0 = False |
| ExecIsInsertTrigger | INSERT 觸發(fā)器。1 = True,0 = False |
| ExecIsInsteadOfTrigger | INSTEAD OF 觸發(fā)器。1 = True,0 = False |
| ExecIsLastDeleteTrigger | 對(duì)表執(zhí)行 DELETE 時(shí)激發(fā)的最后一個(gè)觸發(fā)器。1 = True,0 = False |
| ExecIsLastInsertTrigger | 對(duì)表執(zhí)行 INSERT 時(shí)激發(fā)的最后一個(gè)觸發(fā)器。1 = True,0 = False |
| ExecIsLastUpdateTrigger | 對(duì)表執(zhí)行 UPDATE 時(shí)激發(fā)的最后一個(gè)觸發(fā)器。1 = True,0 = False |
| ExecIsQuotedIdentOn | 創(chuàng)建時(shí)的 QUOTED_IDENTIFIER 設(shè)置1 = True,0 = False |
| ExecIsStartup | 啟動(dòng)過(guò)程。1 = True,0 = False |
| ExecIsTriggerDisabled | 禁用的觸發(fā)器。1 = True,0 = False |
| ExecIsTriggerNotForRepl | 定義為 NOT FOR REPLICATION 的觸發(fā)器。1 = True,0 = False |
| ExecIsUpdateTrigger | UPDATE 觸發(fā)器。1 = True,0 = False |
| HasAfterTrigger | 表或視圖具有 AFTER 觸發(fā)器。1 = True,0 = False |
| HasDeleteTrigger | 表或視圖具有 DELETE 觸發(fā)器。1 = True,0 = False |
| HasInsertTrigger | 表或視圖具有 INSERT 觸發(fā)器。1 = True,0 = False |
| HasInsteadOfTrigger | 表或視圖具有 INSTEAD OF 觸發(fā)器。1 = True,0 = False |
| HasUpdateTrigger | 表或視圖具有 UPDATE 觸發(fā)器。1 = True,0 = False |
| IsAnsiNullsOn | 指定表的 ANSI NULLS 選項(xiàng)設(shè)置為 ON。這表示所有對(duì)空值的比較都取值為 UNKNOWN。只要表存在,此設(shè)置將應(yīng)用于表定義中的所有表達(dá)式,包括計(jì)算列和約束。1 = True,0 = False |
| IsCheckCnst | CHECK 約束。1 = True,0 = False |
| IsConstraint | 列或表的單列 CHECK、DEFAULT 或 FOREIGN KEY 約束。1 = True,0 = False |
| IsDefault | 綁定的默認(rèn)值。1 = True,0 = False |
| IsDefaultCnst | DEFAULT 約束。1 = True,0 = False |
| IsDeterministic | 函數(shù)或視圖的確定性屬性。1 = True,0 = False |
| IsEncrypted | 指示模塊語(yǔ)句的原始文本已轉(zhuǎn)換為模糊格式。模糊代碼的輸出在 SQL Server 2005 的任何目錄視圖中都不能直接顯示。對(duì)系統(tǒng)表或數(shù)據(jù)庫(kù)文件沒(méi)有訪問(wèn)權(quán)限的用戶不能檢索模糊文本。但是,能夠通過(guò) DAC 端口訪問(wèn)系統(tǒng)表的用戶或能夠直接訪問(wèn)數(shù)據(jù)庫(kù)文件的用戶可以檢索此文本。此外,能夠向服務(wù)器進(jìn)程附加調(diào)試器的用戶可在運(yùn)行時(shí)從內(nèi)存中檢索原始過(guò)程。1 = 已加密,0 = 未加密,基本數(shù)據(jù)類型:int |
| IsExecuted | 可執(zhí)行對(duì)象(視圖、過(guò)程、函數(shù)或觸發(fā)器)。1 = True,0 = False |
| IsExtendedProc | 擴(kuò)展過(guò)程。1 = True,0 = False |
| IsForeignKey | FOREIGN KEY 約束。1 = True,0 = False |
| IsIndexed | 包含索引的表或視圖。1 = True,0 = False |
| IsIndexable | 可以創(chuàng)建索引的表或視圖。1 = True,0 = False |
| IsInlineFunction | 內(nèi)聯(lián)函數(shù)。1 = True,0 = False |
| IsMSShipped | 安裝 SQL Server 過(guò)程中創(chuàng)建的對(duì)象。1 = True,0 = False |
| IsPrimaryKey | PRIMARY KEY 約束。1 = True,0 = False ,NULL = 非函數(shù),或?qū)ο?ID 無(wú)效。 |
| IsProcedure | 過(guò)程。1 = True,0 = False |
| IsQuotedIdentOn | 指定對(duì)象的引號(hào)標(biāo)識(shí)符設(shè)置為 ON。這表示用英文雙引號(hào)分隔對(duì)象定義中涉及的所有表達(dá)式中的標(biāo)識(shí)符。1 = ON,0 = OFF |
| IsQueue | Service Broker 隊(duì)列.1 = True,0 = False |
| IsReplProc | 復(fù)制過(guò)程。1 = True,0 = False |
| IsRule | 綁定規(guī)則。1 = True,0 = False |
| IsScalarFunction | 標(biāo)量值函數(shù)。1 = 標(biāo)量值函數(shù),0 = 非標(biāo)量值函數(shù) |
| IsSchemaBound | 使用 SCHEMABINDING 創(chuàng)建的綁定到架構(gòu)的函數(shù)或視圖。1 = 綁定到架構(gòu),0 = 不綁定架構(gòu)。 |
| IsSystemTable | 系統(tǒng)表。1 = True,0 = False |
| IsTable | 表。1 = True,0 = False |
| IsTableFunction | 表值函數(shù)。1 = 表值函數(shù).0 = 非表值函數(shù) |
| IsTrigger | 觸發(fā)器。1 = True,0 = False |
| IsUniqueCnst | UNIQUE 約束。1 = True,0 = False |
| IsUserTable | 用戶定義的表。1 = True,0 = False |
| IsView | 視圖。1 = True,0 = False |
| OwnerId | 對(duì)象的所有者。 |
| TableDeleteTrigger | 表具有 DELETE 觸發(fā)器。>1 = 指定類型的第一個(gè)觸發(fā)器的 ID。 |
| TableDeleteTriggerCount | 表具有指定數(shù)目的 DELETE 觸發(fā)器。>0 = DELETE 觸發(fā)器數(shù)目。 |
| TableFullTextMergeStatus | 表所具有的全文索引當(dāng)前是否正在合并。0 = 表沒(méi)有全文索引,或者全文索引未在合并。1 = 全文索引正在合并。 |
| TableFullTextBackgroundUpdateIndexOn | 表已啟用全文后臺(tái)更新索引(自動(dòng)更改跟蹤)。1 = True,0 = False |
| TableFulltextCatalogId | 表的全文索引數(shù)據(jù)所在的全文目錄的 ID。非零 = 全文目錄 ID,它與全文索引表中標(biāo)識(shí)行的唯一索引相關(guān)。0 = 表沒(méi)有全文索引。 |
| TableFulltextChangeTrackingOn | 表已啟用全文更改跟蹤。1 = True,0 = False |
| TableFulltextDocsProcessed | 自開(kāi)始全文索引以來(lái)所處理的行數(shù)。在為進(jìn)行全文搜索而正在編制索引的表中,將一個(gè)行的所有列視為要編制索引的文檔的一部分。0 = 沒(méi)有完成的活動(dòng)爬網(wǎng)或全文索引。> 0 = 以下選項(xiàng)之一: · 自從開(kāi)始完整、增量或手動(dòng)更改跟蹤填充以來(lái),由插入或更新操作處理的文檔數(shù)。 · 自從執(zhí)行以下操作以來(lái)由插入或更新操作處理的行數(shù):啟用具有后臺(tái)更新索引填充功能的更改跟蹤、更改全文索引架構(gòu)、重建全文目錄或重新啟動(dòng) SQL Server 的實(shí)例等。 NULL = 表沒(méi)有全文索引。 |
| TableFulltextFailCount | 全文搜索未編制索引的行數(shù)。 0 = 填充已完成。 > 0 = 以下選項(xiàng)之一: · 自從開(kāi)始完整、增量和手動(dòng)更新更改跟蹤填充以來(lái)未編制索引的文檔數(shù)。 · 對(duì)于具有后臺(tái)更新索引功能的更改跟蹤,則為自從開(kāi)始填充或重新啟動(dòng)填充以來(lái)未編制索引的行數(shù)。這可能由架構(gòu)更改、目錄重建、服務(wù)器重新啟動(dòng)等引起。 NULL = 表沒(méi)有全文索引。 |
| TableFulltextItemCount | 成功編制了全文索引的行數(shù)。 |
| TableFulltextKeyColumn | 與參與全文索引定義的單列唯一索引關(guān)聯(lián)的列的 ID。 0 = 表沒(méi)有全文索引。 |
| TableFulltextPendingChanges | 要處理的掛起更改跟蹤項(xiàng)的數(shù)目。 0 = 未啟用更改跟蹤。 NULL = 表沒(méi)有全文索引。 |
| TableFulltextPopulateStatus | 0 = 空閑。 1 = 正在進(jìn)行完全填充。 2 = 正在進(jìn)行增量填充。 3 = 正在傳播所跟蹤的更改。 4 = 正在進(jìn)行后臺(tái)更新索引(例如,自動(dòng)跟蹤更改)。 5 = 全文索引已中止或暫停。 |
| TableHasActiveFulltextIndex | 表具有活動(dòng)的全文索引。 1 = True 0 = False |
| TableHasCheckCnst | 表具有 CHECK 約束。 1 = True 0 = False |
| TableHasClustIndex | 表具有聚集索引。 1 = True 0 = False |
| TableHasDefaultCnst | 表具有 DEFAULT 約束。 1 = True 0 = False |
| TableHasDeleteTrigger | 表具有 DELETE 觸發(fā)器。 1 = True 0 = False |
| TableHasForeignKey | 表具有 FOREIGN KEY 約束。 1 = True 0 = False |
| TableHasForeignRef | 表由 FOREIGN KEY 約束引用。 1 = True 0 = False |
| TableHasIdentity | 表具有標(biāo)識(shí)列。 1 = True 0 = False |
| TableHasIndex | 表具有任意類型的索引。 1 = True 0 = False |
| TableHasInsertTrigger | 對(duì)象具有 INSERT 觸發(fā)器。 1 = True 0 = False |
| TableHasNonclustIndex | 表有非聚集索引。 1 = True 0 = False |
| TableHasPrimaryKey | 表具有主鍵。 1 = True 0 = False |
| TableHasRowGuidCol | 表的 uniqueidentifier 列具有 ROWGUIDCOL。 1 = True 0 = False |
| TableHasTextImage | 表具有 text、ntext 或 image 列。 1 = True 0 = False |
| TableHasTimestamp | 表具有 timestamp 列。 1 = True 0 = False |
| TableHasUniqueCnst | 表具有 UNIQUE 約束。 1 = True 0 = False |
| TableHasUpdateTrigger | 對(duì)象有 UPDATE 觸發(fā)器。 1 = True 0 = False |
| TableHasVarDecimalStorageFormat | 為 vardecimal 存儲(chǔ)格式啟用表。 1 = True 0 = False |
| TableInsertTrigger | 表具有 INSERT 觸發(fā)器。 >1 = 指定類型的第一個(gè)觸發(fā)器的 ID。 |
| TableInsertTriggerCount | 表有指定數(shù)目的 INSERT 觸發(fā)器。 >0 = INSERT 觸發(fā)器的個(gè)數(shù)。 |
| TableIsFake | 表不是真實(shí)的表。它將由 SQL Server 數(shù)據(jù)庫(kù)引擎根據(jù)需要在內(nèi)部進(jìn)行具體化。 1 = True 0 = False |
| TableIsLockedOnBulkLoad | bcp 或 BULK INSERT 作業(yè)導(dǎo)致表被鎖。 1 = True 0 = False |
| TableIsPinned | 駐留表以將其保留在數(shù)據(jù)緩存中。 0 = False SQL Server 2005 及更高版本不支持此功能。 |
| TableTextInRowLimit | text in row 允許的最大字節(jié)數(shù)。 如果未設(shè)置 text in row 選項(xiàng),則返回 0。 |
| TableUpdateTrigger | 表具有 UPDATE 觸發(fā)器。 >1 = 指定類型的第一個(gè)觸發(fā)器的 ID。 |
| TableUpdateTriggerCount | 表有指定數(shù)目的 UPDATE 觸發(fā)器。 > 0 = UPDATE 觸發(fā)器的個(gè)數(shù)。 |
| TableHasColumnSet | 表具有列集。 0 = False 1 = True 有關(guān)詳細(xì)信息,請(qǐng)參閱使用列集。 |
轉(zhuǎn)載于:https://www.cnblogs.com/zhaozhan/archive/2010/05/20/1740352.html
總結(jié)
以上是生活随笔為你收集整理的【SQL基础】T-SQL函数类型——元数据函数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 6、struts.properties配
- 下一篇: PostgreSQL表的行数统计