默认值

如果插入行时没有为列指定值,默认值则指定列中使用什么值。默认值可以是计算结果为常量的任何值,例如常量、内置函数或数学表达式。

若要应用默认值,可以通过在 CREATE TABLE 中使用 DEFAULT 关键字来创建默认值定义。这将为每一列分配一个常量表达式作为默认值。有关详细信息,请参阅 创建和修改 DEFAULT 定义

以下示例将创建一个表,它使用不同类型的默认表达式。它将创建一个默认对象,以便为一个列分配默认值,并将默认对象绑定到该列上。然后在没有为该列指定值的情况下使用默认值做插入测试,并检索测试行以验证所应用的默认值。

USE AdventureWorks;
GO
CREATE TABLE test_defaults
   (keycol      smallint,
   process_id   smallint DEFAULT @@SPID,   --Preferred default definition
   date_ins   datetime DEFAULT getdate(),   --Preferred default definition
   mathcol      smallint DEFAULT 10 * 2,   --Preferred default definition
   char1      char(3),
   char2      char(3) DEFAULT 'xyz') --Preferred default definition;
GO
/* For illustration only, use DEFAULT definitions instead.*/
CREATE DEFAULT abc_const AS 'abc';
GO
sp_bindefault abc_const, 'test_defaults.char1';
GO
INSERT INTO test_defaults(keycol) VALUES (1);
GO
SELECT * FROM test_defaults;
GO

下面是结果集。

Default bound to column.

(1 row(s) affected)

keycol process_id date_ins                    mathcol char1 char2 
------ ---------- --------------------------- ------- ----- ----- 
1      7          Oct 16 1997  8:34PM         20      abc   xyz   

(1 row(s) affected)