--默认值,举个例子:declare @tb table(a int,b datetime default getdate())insert into @tb(a) values(1) select * from @tb
/*--结果
a b
----------- ------------------------------------------------------
1 2003-10-17 12:02:10.573(所影响的行数为 1 行)
--*/
/*--结果
a b
----------- ------------------------------------------------------
1 2003-10-17 12:02:10.573(所影响的行数为 1 行)
--*/
每列只能有一个 DEFAULT 定义。
DEFAULT 定义可以包含常量值、函数、SQL-92 niladic 函数或 NULL。下表显示 niladic 函数及其在执行 INSERT 语句时返回的默认值。 SQL-92 niladic 函数 返回的值
CURRENT_TIMESTAMP 当前日期和时间。
CURRENT_USER 执行插入操作的用户名。
SESSION_USER 执行插入操作的用户名。
SYSTEM_USER 执行插入操作的用户名。
USER 执行插入操作的用户名。
DEFAULT 定义中的 constant_expression 不能引用表中的其它列,也不能引用其它表、视图或存储过程。
不能在数据类型为 timestamp 的列或具有 IDENTITY 属性的列上创建 DEFAULT 定义。
如果用户定义数据类型绑定到默认对象,则不能在该用户定义数据类型的列上创建 DEFAULT 定义。
使用 INSERT 和 UPDATE 语句时,如果没有提供值,则默认值会提供值。在 pubs 数据库中,使用了许多 DEFAULT 定义以确保输入有效的数据或占位符。在 jobs 表上,当没有显式输入实际的描述信息时,默认的字符串将提供描述信息(列 job_desc)。DEFAULT 'New Position - title not formalized yet'在 employee 表中,员工可以受雇于子公司或母公司。如果没有显式提供公司信息,则输入母公司(注意在表定义中可以嵌套注释,如下所示)。DEFAULT ('9952')
/* By default the Parent Company Publisher is the company
to whom each employee reports. */除了常量以外,DEFAULT 定义还可以包含函数。使用下例获取输入项的当前日期:DEFAULT (getdate())niladic 函数也可以提高数据的完整性。若要跟踪插入行的用户,请使用 niladic 函数 USER(niladic 函数不使用括号):DEFAULT USER