AutoCAD 3DMAX C语言 Pro/E UG JAVA编程 PHP编程 Maya动画 Matlab应用 Android
Photoshop Word Excel flash VB编程 VC编程 Coreldraw SolidWorks A Designer Unity3D
 首页 > SQL Server

SQL Server数据库技术(57)

51自学网 http://www.wanshiok.com

 

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 所示的绑定缺省值到表的列的对话框。用它们来管理缺省值与表的列以及用户自定义数据类型之间的绑定非常方便。


(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 的一大特点,它通过在数据库端使用特定的规定来管理流入与输出系统的信息,而不是由应用程序本身来控制信息的类型,这使得数据独立与应用程序成为开放的数据库系统。

 
 

上一篇:SQL Server数据库技术(58)  下一篇:SQL Server数据库技术(56)