標籤:
表
資料庫(資料庫引擎) 表 建立表(資料庫引擎) 刪除表(資料庫引擎) 複製表 重新命名表(資料庫引擎) 查看錶定義 查看錶的依賴關係 向表中添加列(資料庫引擎) 從表中刪除列 重新命名列(資料庫引擎) 將列從一個表複製到另一個表 (資料庫引擎) 修改列(資料庫引擎) 更改表中的列順序 指定表中的計算資料行 指定列的預設值 使用稀疏列 使用列集 使用表值參數(資料庫引擎) 主鍵和外鍵約束 唯一約束和 CHECK 條件約束 表列屬性 (SQL Server Management Studio) 記憶體內部 OLTP(記憶體中最佳化) 索引(資料庫引擎) 資料分割資料表和資料分割索引 視圖 預存程序 搜尋 使用者定義函數 統計資訊 計劃指南 遊標 序號 DDL 觸發程序 DML 觸發程序 同義字(資料庫引擎) XML 資料 空間資料 二進位大型物件 (Blob) 資料 階層資料 資料層應用程式 交易記錄 (SQL Server) 資料庫檢查點 SQL Server 資料庫的備份與還原 大容量匯入和匯出資料 資料壓縮 Transact-SQL 中的 OLE Automation 物件 事件通知 監視和最佳化效能 TOC摺疊目錄展開目錄
文檔已存檔,此處的資訊可能已淘汰文檔已存檔,此處的資訊可能已淘汰
表
SQL Server 2014 其他版本 SQL Server 2012 SQL Server 2008 R2 SQL Server 2008 SQL Server 2005
表是包含資料庫中所有資料的資料庫物件。 資料在表中的邏輯組織方式與在試算表中相似,都是按行和列的格式組織的。 每一行代表一條唯一的記錄,每一列代表記錄中的一個欄位。 例如,在包含公司僱員資料的表中,每一行代表一名僱員,各列分別代表該僱員的資訊,如僱員編號、姓名、地址、職位以及家庭電話號碼等。
•資料庫中的表數僅受資料庫中允許的對象數 (2,147,483,647) 的限制。 標準的使用者定義的表可以有多達 1024 列。 表的行數僅受伺服器的儲存容量的限制。
•您可將屬性分配到表和表中的每個列以控制允許的資料和其他屬性。 例如,您可在列上建立約束以禁止空值或在未指定值時提供預設值,您也可以在表上指定強制唯一性或定義表之間的關係的鍵約束。
•可對錶中的資料按行或頁進行壓縮。 通過資料壓縮,可在頁上儲存更多的行。 有關詳細資料,請參閱資料壓縮。
表的類型
--------------------------------------------------------------------------------
除了基本使用者定義表的標準角色以外,SQL Server 還提供了下列類型的表,這些表在資料庫中起著特殊的作用。
資料分割資料表
資料分割資料表是將資料水平劃分為多個單元的表,這些單元可以分布到資料庫中的多個檔案組中。 在維護整個集合的完整性時,使用分區可以快速而有效地訪問或管理資料子集,從而使大型表或索引更易於管理。 預設情況下,SQL Server 2014 支援多達 15,000 個分區。 有關詳細資料,請參閱資料分割資料表和資料分割索引。
暫存資料表
暫存資料表儲存在 tempdb 中。 暫存資料表有兩種類型:本地表和全域表。 它們在名稱、可見度以及可用性上有區別。 本地暫存資料表的名稱以單個數字記號 (#) 打頭;它們僅對當前的使用者串連是可見的;當使用者從 SQL Server 執行個體中斷連線時被刪除。 全域暫存資料表的名稱以兩個數字記號 (##) 打頭,建立後對任何使用者都是可見的,當所有引用該表的使用者從 SQL Server 執行個體中斷連線時將被刪除。
系統資料表
SQL Server 將定義伺服器配置及其所有表的資料存放區在一組特殊的表中,這組表稱為系統資料表。 使用者不能直接查詢或更新系統資料表。 可以通過系統檢視表查看系統資料表中的資訊。 有關詳細資料,請參閱系統檢視表 (Transact-SQL)。
寬表
寬表使用稀疏列,從而將表可以包含的總列數增大為 30,000 列。 稀疏列是對 Null 值採用最佳化的儲存方式的普通列。 稀疏列減少了 Null 值的空間需求,但代價是檢索非 Null 值的開銷增加。 寬表已定義了一個列集,列集是一種非類型化的 XML 表示形式,它將表的所有稀疏列合并為一種結構化的輸出。 索引數和統計資訊數也分別增大為 1,000 和 30,000。 寬表行的最大大小為 8,019 個位元組。 因此,任何特定行中的大部分資料都應為 NULL。 寬表中非稀疏列和計算資料行的列數之和仍不得超過 1,024。
寬表具有下列效能影響。
•寬表會增加維護表的索引的開銷。 我們建議將寬表的索引數限制為商務邏輯所需的索引數。 索引數增加,DML 編譯時間和記憶體需求也會增加。 非叢集索引應當為應用到資料子集的篩選索引。 有關詳細資料,請參閱建立篩選索引。
•應用程式可以在寬表中動態添加和刪除列。 當添加或刪除列時,已編譯的查詢計劃也將作廢。 我們建議您設計與預定工作負載相匹配的應用程式,以便使架構更改降至最少。
•當在寬表中添加和刪除資料時,效能會受到影響。 必須針對預定工作負載設計應用程式,以便使對錶資料所做的更改降至最少。
•限制對寬表執行用於更新聚集鍵的多個行的 DML 語句。 編譯和執行這些語句會需要非常多的記憶體資源。
•對寬表執行切換分區操作可能會很慢,並可能需要大量的記憶體才能加以處理。 效能和記憶體需求與來源資料分割和目標資料分割中的列數成比例。
•用於更新寬表中特定列的更新遊標應在 FOR UPDATE 子句中顯式列出這些列。 這將有助於最佳化使用遊標時的效能。
公用表任務
--------------------------------------------------------------------------------
下表提供指向與建立或修改表相關的常見任務的連結。
表任務 主題
介紹如何建立表。 建立表(資料庫引擎)
介紹如何刪除表。 刪除表(資料庫引擎)
介紹如何建立包含現有表中的一些列或所有列的表。 複製表
介紹如何重新命名表。 重新命名表(資料庫引擎)
介紹如何查看錶的屬性。 查看錶定義
介紹如何確定諸如視圖或預存程序等其他對象是否取決於表。 查看錶的依賴關係
下表提供指向與建立或修改表中的列相關的常見任務的連結。
列任務 主題
介紹如何向現有表中添加列。 向表中添加列(資料庫引擎)
介紹如何從表中刪除列。 從表中刪除列
介紹如何更改列的名稱。 重新命名列(資料庫引擎)
介紹如何通過僅複製列定義或者複製定義和資料將列從一個表複製到另一個表。 將列從一個表複製到另一個表 (資料庫引擎)
介紹如何通過更改資料類型或其他屬性來修改列定義。 修改列(資料庫引擎)
介紹如何更改列的顯示順序。 更改表中的列順序
介紹如何在表中建立計算資料行。 指定表中的計算資料行
介紹如何指定列的預設值。 如果未提供其他值,則使用此值。 指定列的預設值
Sqlserver 資料庫