sql server2008系統表詳細說明sys.開頭的表


一、庫里有多少個表,表名等

select * from INFORMATION_SCHEMA.TABLES

 

二、查詢表、字段、類型、是否主鍵、長度、小數位、是否允許空、默認值等詳細查詢

效果:

SELECT   
 (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空  
     a.colorder as 字段序號,  
     a.name as 字段名,  
     (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then ''else '' end) as 標識,  
     (case when (SELECT count(*) FROM sysobjects--查詢主鍵  
                     WHERE (name in  
                             (SELECT name FROM sysindexes   
                             WHERE (id = a.id)  AND (indid in  
                                     (SELECT indid FROM sysindexkeys  
                                       WHERE (id = a.id) AND (colid in  
                                         (SELECT colid FROM syscolumns  
                                         WHERE (id = a.id) AND (name = a.name))  
                         )))))   
         AND (xtype = 'PK'))>0 then '' else '' end) as 主鍵,--查詢主鍵END  
 b.name as 類型,  
 a.length as 占用字節數,  
 COLUMNPROPERTY(a.id,a.name,'PRECISION') as  長度,  
 isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as 小數位數,  
 (case when a.isnullable=1 then ''else '' end) as 允許空,  
 isnull(e.text,'') as 默認值,  
 isnull(g.[value],'') AS 字段說明   
 FROM syscolumns a left join systypes b   
 on a.xtype=b.xusertype  
 inner join sysobjects d   
 on a.id=d.id and d.xtype='U' and d.name<>'dtproperties'  
 left join syscomments e  
 on a.cdefault=e.id  
 left join sys.extended_properties g  
 on a.id=g.major_id AND a.colid = g.minor_id   
 order by a.id,a.colorder
 

 

三、系統表:

sys.allocation_units 數據庫中的每個分配單元都在表中占一行。
sys.assembly_modules 為公共語言運行時 (CLR) 程序集所定義的每個函數、過程或觸發器返回一行。此目錄視圖將 CLR 存儲過程、CLR 觸發器或 CLR 函數映射到其基礎實現。類型為 TA、AF、PC、FS 和 FT 的對象具有相關聯的程序集模塊。若要查找對象和程序集之間的關聯,可以將此目錄視圖聯接到其他目錄視圖。例如,在創建 CLR 存儲過程時,該存儲過程由 sys.objects 中的一行、sys.procedures(繼承自 sys.objects)中的一行以及 sys.assembly_modules 中的一行表示。該存儲過程本身由 sys.objects 和 sys.procedures 中的元數據表示。在 sys.assembly_modules 中可以找到對該過程的基礎 CLR 實現的引用。
sys.check_constraints 每個作為 CHECK 約束的對象 (sys.objects.type = ‘C’) 均存在對應的一行。
sys.columns 為包含列的對象(如視圖或表)的每列返回一行。下面是包含列的對象類型的列表。

 

  • 表值程序集函數 (FT)
  • 內聯表值 SQL 函數 (IF)
  • 內部表 (IT)
  • 系統表 (S)
  • 表值 SQL 函數 (TF)
  • 用戶表 (U)
  • 視圖 (V)
sys.computed_columns sys.columns 中的每個計算列對應一行。
sys.default_constraints 作為默認定義且 sys.objects.type = D 的每個對象在表中各對應一行,該默認定義是作為 CREATE TABLE 或 ALTER TABLE 語句的一部分創建的,而不是作為 CREATE DEFAULT 語句的一部分創建的。
sys.events 導致觸發器或事件通知激發的每個事件對應一行。這些事件表示在使用 CREATE TRIGGER 或 CREATE EVENT NOTIFICATION 創建觸發器或事件通知時所指定的事件類型。
sys.event_notifications 為作為事件通知的每個對象返回一行,且 sys.objects.type = EN。
sys.extended_procedures 每個作為擴展存儲過程且 sys.objects.type = X 的對象對應一行。因為擴展存儲過程安裝在 master 數據庫中,它們只有在該數據庫上下文中才可見。從任何其他數據庫上下文中的sys.extended_procedures 視圖中進行選擇,將返回空的結果集。
sys.foreign_key_columns 組成外鍵的每一列或列集在表中對應一行。
sys.foreign_keys 每個作為 FOREIGN KEY 約束並且 sys.object.type = F 的對象都在表中占一行。
sys.function_order_columns 針對每列返回一行,該列是公共語言運行時 (CLR) 表值函數 ORDER 表達式的一部分。
sys.identity_columns 用作標識列的每列都在表中占一行。
sys.index_columns 屬於 sys.indexes 索引或未排序的表(堆)的每個列都對應一行。
sys.indexes 每個表格對象(例如,表、視圖或表值函數)的索引或堆都包含一行。
sys.key_constraints 每個作為主鍵或唯一約束的對象對應一行。包括 sys.objects.type PK 和 UQ。
sys.numbered_procedure_parameters 帶編號過程的每個參數都在表中對應一行。當您創建帶編號的存儲過程時,基過程的編號為 1。所有后續過程的編號依次為 2、3等。sys.numbered_procedure_parameters 包含所有后續過程(編號大於等於 2)的參數定義。該視圖不顯示基存儲過程(編號 = 1)的參數。基存儲過程類似於無編號的存儲過程。因此,它的參數表示在 sys.parameters (Transact-SQL) 中。
sys.numbered_procedures 每個作為帶編號的過程而創建的 SQL Server 存儲過程都占一行。對於基(編號 = 1)存儲過程,它不顯示行。可以在諸如 sys.objects 和 sys.procedures 之類的視圖中找到基存儲過程的項。
sys.objects 在數據庫中創建的每個用戶定義的架構范圍內的對象在該表中均對應一行。
sys.parameters 接受參數的對象的每個參數在表中對應一行。如果對象是標量函數,則另有一行說明返回值。該行將有一個值為 0 的 parameter_id。
sys.partitions 數據庫中所有表和大多數類型的索引的每個分區在表中各對應一行。Fulltext、Spatial 和 XML 之類的特殊索引類型在此視圖中不包括。SQL Server 2008 中所有表和索引都至少包含一個分區,無論它們是否已進行顯式分區均為如此。
sys.procedures 於同類過程並且 sys.objects.type = P、X、RF 和 PC 的每個對象對應一行。
sys.service_queues 數據庫中每個作為服務隊列的對象(sys.objects.type = SQ)都在表中對應一行。
sys.spatial_index_tessellations 表示有關每個空間索引的分割方案和參數的信息。
sys.spatial_indexes 表示空間索引的主索引信息。
sys.sql_dependencies 對在定義另一引用對象的 Transact-SQL 表達式或語句中引用的被引用的實體的每一依賴關系,均存在對應的一行。
sys.sql_expression_dependencies 當前數據庫中用戶定義實體的每個按名稱依賴項在此表中均占一行。當一個稱為“被引用的實體”的實體按名稱顯示在另一個稱為“引用實體”的實體的持久化 SQL 表達式中時,將創建這兩個實體之間的依賴關系。例如,在視圖定義中引用表時,作為引用實體的視圖將依賴於表這個被引用的實體。如果刪除該表,則該視圖不可用。您可以使用此目錄視圖來報告以下實體的依賴關系信息:

 

  • 綁定到架構的實體。
  • 非綁定到架構的實體。
  • 跨數據庫和跨服務器的實體。報告了實體名稱;但實體 ID 尚未解析。
  • 綁定到架構的實體的列級依賴關系。可以使用 sys.dm_sql_referenced_entities 返回非綁定到架構的對象的列級依賴關系。
  • 服務器級別的 DDL 觸發器(在 master 數據庫的上下文中時)。
sys.sql_modules 對每個 SQL 語言定義的模塊對象都返回一行。類型為 P、RF、V、TR、FN、IF、TF 和 R 的對象均有關聯的 SQL 模塊。在此視圖中,獨立的默認值,即 D 類型的對象也具有 SQL 模塊定義。有關這些類型的說明,請參閱 sys.objects 目錄視圖中的類型列。
sys.stats U、V 或 TF 類型表格對象的每個統計信息都對應一行。
sys.stats_columns sys.stats 統計信息包含的每列對應一行。
sys.synonyms 在該視圖中,sys.objects.type = SN 的每個同義詞對象對應一行。
sys.table_types 顯示用戶定義表類型的屬性。表類型是指無法從其中聲明表變量或表值參數的類型。每個表類型都包含 type_table_object_id,它是指向sys.objects 目錄視圖的外鍵。此 ID 可用於查詢各種目錄視圖,查詢方式與常規表的 object_id 類似,以便發現表類型的結構,如表的列、約束等。
sys.tables 為每個表對象返回一行,當前僅用於 sys.objects.type = U 的表對象。
sys.trigger_event_types 為可以激發觸發器的每個事件或事件組返回一行。
sys.trigger_events 觸發觸發器的每個事件對應一行。
sys.triggers 每個類型為 TR 或 TA 的觸發器對象對應一行。DML 觸發器名稱在架構范圍內,因此,可在 sys.objects 中顯示。DDL 觸發器名稱的作用域取決於父實體,只能在此視圖中顯示。parent_class 和 name 列唯一標識了數據庫中的觸發器。
sys.views ys.objects.type = V 的每個視圖對象在該表中對應一行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM