DEFAULT约束是什么?

passionke 2003-10-17 12:00:05
如题
...全文
319 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
aierong 2003-10-17
  • 打赏
  • 举报
回复
使用 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

aierong 2003-10-17
  • 打赏
  • 举报
回复
DEFAULT 定义
每列只能有一个 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 定义。
zjcxc 元老 2003-10-17
  • 打赏
  • 举报
回复
2003-10-17 12:02:10.573
zjcxc 元老 2003-10-17
  • 打赏
  • 举报
回复
我没有为字段b输入值,但因为设置了默认值,所以被自动赋值为:
zjcxc 元老 2003-10-17
  • 打赏
  • 举报
回复
--默认值,举个例子:

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 行)
--*/
softrookie 2003-10-17
  • 打赏
  • 举报
回复
缺省值
如果你在插入数据时该列没有值则系统赋予该值

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧