SQL Server数据库技术(57)
2007-11-11 08:05:53 来源:WEB开发网9.3.1 创建缺省值
(1) 用CREATE DEFAULT 命令创建缺省值
CREATE DEFAULT 命令用于在当前数据库中创建缺省值对象,其语法如下:
CREATE DEFAULT default_name AS constant_expression
其中constant_expression 子句是缺省值的定义。constant_expression 子句可以是数学表达式或函数,也可以包含表的列名或其它数据库对象。
例9-11: 创建生日缺省值birthday_defa。
create default birthday_defa
as '1978-1-1'
例9-12: 创建姓名缺省值name_defa。
create default name_defa
as user
(2) 用Enterprise Manager 创建缺省值
在Enterprise Manager 中选择数据库对象“Defaults”, 单击右键,从快捷菜单中选择N“ew Default” 选项,即会弹出如图9-6 所示的创建缺省值属性对话框。输入缺省值名称和值表达式之后,单击“确定”按钮,即完成缺省值的创建。
(WINDOWS平台上强大的数据库平台)数据库技术(57)(图一)" />
9.3.2 查看缺省值
(1) 用Enterprise Manager 查看缺省值
在Enterprise Manager 中选择“Defaults”对象,即可从右边的任务板中看到缺省值的大部分信息。如图9-7 所示。也可以选择要查看的缺省值,单击右键,从快捷菜单中选择“Properties” 选项,即会出现如图9-8 所示的缺省值属性对话框,可以从中编辑缺省值的
值表达式。修改缺省值名称的方法与修改规则名称的方法相同,可以用Sp_rename 存储过程修改,也可以在企业管理器的任务板窗口中直接修改。
(WINDOWS平台上强大的数据库平台)数据库技术(57)(图二)" />
(WINDOWS平台上强大的数据库平台)数据库技术(57)(图三)" />
(2) 用存储过程Sp_helptext 查看缺省值
使用Sp_helptext 存储过程可以查看缺省值的细节。
例9-13: 查看缺省值today。
exec sp_helptext today
运行结果如下:
------------------------------------------------------------------
Text
------------------------------------------------------------------
create default [dp_date] as getdate()
9.3.3 缺省值的绑定与松绑
创建缺省值后,缺省值仅仅只是一个存在于数据库中的对象,并未发生作用。同规则一样,需要将缺省值与数据库表或用户自定义对象绑定。
(1) 用Enterprise Manager 管理缺省值的绑定
在Enterprise Manager 中,选择要进行绑定设置的缺省值,单击右键,从快捷菜单中选择“Properties” 选项,即会出现如图9-8 所示的缺省值属性对话框。
图9-8 中的“Bind UDTs…” 按钮用于绑定用户自定义数据类型,“Bind Columns…”按钮用于绑定表的列。在图9-8 中单击“Bind UDTs…” 按钮,则出现如图9-9 所示的绑定缺省值到用户自定义数据类型的对话框;单击“Bind Columns…” 按钮,则出现如图9-
10 所示的绑定缺省值到表的列的对话框。用它们来管理缺省值与表的列以及用户自定义数据类型之间的绑定非常方便。
(WINDOWS平台上强大的数据库平台)数据库技术(57)(图四)" />
(WINDOWS平台上强大的数据库平台)数据库技术(57)(图五)" />
(2) 用存储过程Sp_bindefault 绑定缺省值
存储过程Sp_bindefault 可以绑定一个缺省值到表的一个列或一个用户自定义数据类型上。其语法如下:
sp_bindefault [@defname =] 'default',
[@objname =] 'object_name'
[, 'futureonly']
其中'futureonly'选项仅在绑定缺省值到用户自定义数据类型上时才可以使用。当指定此选项时,仅以后使用此用户自定义数据类型的列会应用新缺省值,而当前已经使用此数据类型的列则不受影响。
例9-14 :绑定缺省值today 到用户自定义数据类型hire_date 上。
exec sp_bindefault today, hire_date
运行结果如下:
--------------------------- ------------------------------
Default bound to data type.
The new default has been bound to columns(s) of the specified user data type.
(3) 用存储过程Sp_unbindefault 解除缺省值的绑定
存储过程Sp_unbindefault 可以解除缺省值与表的列或用户自定义数据类型的绑定,其语法如下:
Sp_unbindefault [@objname =] 'object_name'
[,'futureonly']
其中'futureonly'选项同绑定时一样,仅用于用户自定义数据类型,它指定现有的用此用户自定义数据类型定义的列仍然保持与此缺省值的绑定。如果不指定此项,所有由此用户自定义数据类型定义的列也将随之解除与此缺省值的绑定。
例9-15: 解除缺省值num_default 与表products 的quantity 列的绑定。
exec sp_unbindefault ‘products.[quantity]’
运行结果如下:
--------------------------- ------------------------------
(1 row(s) affected)
Default unbound from table column.
注意:如果列同时绑定了一个规则和一个缺省值、那么缺省值应该符合规则的规定。
不能绑定缺省值到一个用CREATE TABLE或ALTER TABLE命令创建或修改表时用DEFAULT选项指定了的缺省值的列上。
9.3.4 删除缺省值
可以在Enterprise Manager 中选择缺省值,单击右键,从快捷菜单中选择“Delete” 选项删除缺省值,也可以使用DROP DEFAULT 命令删除当前数据库中的一个或多个缺省
值。其语法如下:
DROP DEFAULT {default_name} [,...n]
注意:在删除一个缺省值前必须先将与其绑定的对象解除绑定。
例9-16: 删除生日缺省值birthday_defa。
drop default birthday_defa
本章小结
数据完整性工具的应用是sql server(WINDOWS平台上强大的数据库平台) 的一大特点,它通过在数据库端使用特定的规定来管理流入与输出系统的信息,而不是由应用程序本身来控制信息的类型,这使得数据独立与应用程序成为开放的数据库系统。
- ››SQL Server 2008 R2 下如何清理数据库日志文件
- ››sqlite 存取中文的解决方法
- ››SQL2005、2008、2000 清空删除日志
- ››SQL Server 2005和SQL Server 2000数据的相互导入...
- ››sql server 2008 在安装了活动目录以后无法启动服...
- ››sqlserver 每30分自动生成一次
- ››sqlite 数据库 对 BOOL型 数据的插入处理正确用法...
- ››sql server自动生成批量执行SQL脚本的批处理
- ››sql server 2008亿万数据性能优化
- ››SQL Server 2008清空数据库日志方法
- ››sqlserver安装和简单的使用
- ››SQL Sever 2008 R2 数据库管理
赞助商链接