有关创建和修改表的基础知识

设计完数据库后就可以在数据库中创建存储数据的表。数据通常存储于永久表中,不过您也可以创建临时表。表存储于数据库文件中,任何拥有所需权限的用户都可以对其进行操作,除非已将其删除。

表的属性

每个表至多可定义 1024 列。表和列的名称必须遵守标识符的规定,在特定表中必须是唯一的,但同一数据库的不同表中可使用相同的列名。有关详细信息,请参阅标识符使用标识符作为对象名称。必须为每列指定数据类型。有关详细信息,请参阅为列分配数据类型

尽管对于每一个架构在一个数据库内表的名称必须是唯一的,但如果为每张表指定了不同的架构,则可以创建多个具有相同名称的表。可以创建名为 employees 的两个表并分别指定 JonahSally 作为其架构。当您必须使用某一 employees 表时,可以通过指定表的架构以及表的名称来区分这两个表。

创建表

CREATE TABLE (Transact-SQL)

如何创建表 (Visual Database Tools)

临时表

临时表与永久表相似,但临时表存储在 tempdb 中,当不再使用时会自动删除。

临时表有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地临时表的名称以单个数字符号 (#) 打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局临时表的名称以两个数字符号 (##) 打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。

例如,如果创建了 employees 表,则任何在数据库中有使用该表的安全权限的用户都可以使用该表,除非已将其删除。如果数据库会话创建了本地临时表 #employees,则仅会话可以使用该表,会话断开连接后就将该表删除。如果创建了 ##employees 全局临时表,则数据库中的任何用户均可使用该表。如果该表在您创建后没有其他用户使用,则当您断开连接时该表删除。如果您创建该表后另一个用户在使用该表,则 SQL Server 将在您断开连接并且所有其他会话不再使用该表时将其删除。

临时表的许多用途可由具有 table 数据类型的变量替换。有关使用 table 变量的详细信息,请参阅 表 (Transact-SQL)

修改表

创建表之后,可以更改最初创建表时定义的许多选项。这些选项包括:

  • 添加、修改或删除列。例如,列的名称、长度、数据类型、精度、小数位数以及为空性均可进行修改,不过有一些限制而已。有关详细信息,请参阅修改列属性
  • 如果是已分区的表,则可以将其重新分区,也可以添加或删除单个分区。有关详细信息,请参阅修改已分区表和已分区索引使用分区切换高效传输数据
  • 可以添加或删除 PRIMARY KEY 约束和 FOREIGN KEY 约束。
  • 可以添加或删除 UNIQUE 约束和 CHECK 约束以及 DEFAULT 定义和对象。
  • 可以使用 IDENTITY 属性或 ROWGUIDCOL 属性添加或删除标识符列。虽然表中一次只能有一列具有 ROWGUIDCOL 属性,但是也可以将 ROWGUIDCOL 属性添加到现有列或从现有列删除。
  • 表及表中所选定的列已注册为全文索引。

有关修改表的详细信息,请参阅 ALTER TABLE (Transact-SQL)

表的名称或架构也可以更改。执行此操作时,还必须更改使用该表的旧名称或架构的所有触发器、存储过程、Transact-SQL 脚本或其他程序代码中表的名称。

重命名表

sp_rename (Transact-SQL)

表属性 (Visual Database Tools)

更改表的架构

ALTER SCHEMA (Transact-SQL)

请参阅

概念

为列分配数据类型
标识符
了解文件和文件组
使用标识符作为对象名称

其他资源

CREATE SCHEMA (Transact-SQL)
DROP SCHEMA (Transact-SQL)

帮助和信息

获取 SQL Server 2005 帮助