指定列的默认值

适用于:yesSQL Server 2016 (13.x) 及更高版本YesAzure SQL 数据库 YesAzure SQL 托管实例 yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

可使用 SQL Server Management Studio 指定将在表列中输入的默认值。 可以使用 SQL Server Management Studio (SSMS) 对象资源管理器或执行 Transact-SQL 来设置默认值。

如果没有分配默认值到列,并且用户将该列保留为空白,则:

  • 如果设置了允许 NULL 值的选项,则将向该列中插入 NULL

  • 如果没有设置允许空值的选项,则该列将保持空白,但在用户为该列提供值之前,他们将无法保存行。

限制和局限

在开始之前,请注意以下限制和局限:

  • 如果“默认值”字段中的项替换绑定的默认值(以不带圆括号的形式显示),则将提示你解除对默认值的绑定,并将其替换为新的默认值。

  • 若要输入文本字符串,请用单引号 (') 将值括起来;不要使用双引号 ("),因为双引号已保留用于带引号的标识符。

  • 若要输入数值默认值,请输入数值并且不要用引号将值括起来。

  • 若要输入对象/函数,请输入对象/函数的名称并且不要用引号将名称括起来。

注意

在 Azure Synapse Analytics 中,只有常数可以用于默认约束。 表达式不能用于默认约束。

权限

本文中描述的操作要求对表具有 ALTER 权限。

使用 SSMS 指定默认值

可以使用对象资源管理器指定表列的默认值。

“对象资源管理器”

  1. 在对象资源管理器中,右键单击要更改其小数位数的列所在的表,再选择“设计” 。

  2. 选择要为其指定默认值的列。

  3. “列属性” 选项卡中,在 “默认值或绑定” 属性中输入新的默认值。

    注意

    若要输入数值默认值,请输入该数字。 对于对象或函数,请输入其名称。 对于字母数字默认值,请输入该值,两边用单引号引起来。

  4. “文件” 菜单上,选择“ 保存表名称”。

使用 Transact-SQL 指定默认值

可通过多种方法使用 SSMS 提交 T-SQL,指定列的默认值。

ALTER TABLE (T-SQL)

  1. “对象资源管理器” 中,连接到 数据库引擎的实例。

  2. 在标准栏上,选择“新建查询” 。

  3. 将以下示例复制并粘贴到查询窗口中,然后选择“执行”。

    CREATE TABLE dbo.doc_exz (column_a INT, column_b INT); -- Allows nulls.
    GO
    INSERT INTO dbo.doc_exz (column_a) VALUES (7);
    GO
    ALTER TABLE dbo.doc_exz
      ADD CONSTRAINT DF_Doc_Exz_Column_B
      DEFAULT 50 FOR column_b;
    GO
    

CREATE TABLE (T-SQL)

    CREATE TABLE dbo.doc_exz (
      column_a INT,
      column_b INT DEFAULT 50);

命名的 CONSTRAINT (T-SQL)

    CREATE TABLE dbo.doc_exz (
      column_a INT,
      column_b INT CONSTRAINT DF_Doc_Exz_Column_B DEFAULT 50);

后续步骤

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