13-默认和规则.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《13-默认和规则.ppt》由用户(hwpkd79526)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 13 默认 规则
- 资源描述:
-
1、默认和规则默认和规则Default and Rule 默默 认认 Default 默认也是一种数据库对象,它可以实现一种与默认值约默认也是一种数据库对象,它可以实现一种与默认值约束功能相似的数据完整性检测功能。束功能相似的数据完整性检测功能。当程序使用当程序使用INSERT语句插入数据时,它可以为数据库语句插入数据时,它可以为数据库中的数据表中的数据表提供默认数据提供默认数据。对于一个具体的数据表来说,默认对象所执行的功能与对于一个具体的数据表来说,默认对象所执行的功能与默认值约束完全一样。但默认值约束是与一个数据表相默认值约束完全一样。但默认值约束是与一个数据表相联系的,其作用范围仅限于所在
2、的数据表。而默认对象联系的,其作用范围仅限于所在的数据表。而默认对象则是则是独立于数据表而创建的独立于数据表而创建的,只有将其应用于一个数据,只有将其应用于一个数据表时,才对所应用的数据起作用。表时,才对所应用的数据起作用。默默 认认 Default 默认值约束是在使用默认值约束是在使用 CREATE TABLE 或或 ALTER TABLE 语句定义数据表时定义,它与表定义存储在一语句定义数据表时定义,它与表定义存储在一起。所以在删除数据表时,默认值约束也被自动删除。起。所以在删除数据表时,默认值约束也被自动删除。而默认对象则需要使用而默认对象则需要使用 DEFAULT 语句定义,它作为一语
3、句定义,它作为一种数据库对象而独立存在。默认对象可以被多次应用不种数据库对象而独立存在。默认对象可以被多次应用不同的数据表,不同的列或用户定义数据类型。即使被其同的数据表,不同的列或用户定义数据类型。即使被其作用的数据被删除,也不能删除默认对象,而需要使用作用的数据被删除,也不能删除默认对象,而需要使用专门的语句来删除。专门的语句来删除。使用企业管理器创建默认对象使用企业管理器创建默认对象 展开需要创建默认对象的数据库;展开需要创建默认对象的数据库;右键单击右键单击“DEFAULT”;选择选择“New Default”菜单;菜单;在在“Default Properties”对话框的对话框的“N
4、ame”中输入默中输入默认对象的名称,在认对象的名称,在“Value”中输入默认值;中输入默认值;单击单击“确定确定”。使用使用T-SQL语句创建默认对象语句创建默认对象 格式为:格式为:CREATE DEFAULT 默认值名默认值名 AS 常数表达式常数表达式 默认值名称必须符合标识符的规则。默认值名称必须符合标识符的规则。常数表达式是指常数表达式是指只包含常量值的表达式只包含常量值的表达式(不能包含任何(不能包含任何列或其他数据库对象的名称)。可以使用任何常量、内列或其他数据库对象的名称)。可以使用任何常量、内置函数或数学表达式。字符和日期常量用单引号(置函数或数学表达式。字符和日期常量用
5、单引号()引起来;货币、整数和浮点常量不需要使用引号。二进引起来;货币、整数和浮点常量不需要使用引号。二进制数据必须以制数据必须以 0 x 开头,货币数据必须以美元符号(开头,货币数据必须以美元符号($)开头。默认值必须与列数据类型兼容。开头。默认值必须与列数据类型兼容。【例例】创建字符默认值】创建字符默认值 男男。use student go create default ssex as 男男 go CREATE DEFAULT 语句只能在当前数据库中创建语句只能在当前数据库中创建默认。对每个用户来说,在同一个数据库中创建的默认。对每个用户来说,在同一个数据库中创建的默认值的名称必须保持惟一
6、。默认值的名称必须保持惟一。应用默认对象(企业管理器)应用默认对象(企业管理器)展开需要创建默认对象的数据库;展开需要创建默认对象的数据库;在对象上右键单击在对象上右键单击“属性属性”;单击单击“Default Properties”对话框的对话框的“Bind Columns”按钮;按钮;单击单击“Bind Default to Columns”对话框的对话框的“Table”下拉按下拉按钮,选择数据表;钮,选择数据表;在在“Unbound columns”栏中选择需要绑定的列;栏中选择需要绑定的列;单击单击“Add”按钮;按钮;单击单击“确定确定”。应用默认对象(应用默认对象(T-SQL语句)
7、语句)使用使用sp_bindefault将默认值绑定到列或用户定义的数将默认值绑定到列或用户定义的数据类型。据类型。语法格式为:语法格式为:sp_bindefault defname=默认值名默认值名,objname=对象名对象名 ,futureonly=futureonly_flag 参数参数defname=default是由是由CREATE DEFAULT 语句创建的默认名称。语句创建的默认名称。应用默认对象(应用默认对象(T-SQL语句)语句)对象名是指要绑定默认值的对象名是指要绑定默认值的表和列名称表和列名称或或用户定义的数用户定义的数据类型据类型。如果对象名没有采取如果对象名没有采取
8、table.column形式,则认为它属于形式,则认为它属于用户定义数据类型。用户定义数据类型。默认情况下,默认情况下,用户定义数据类型的现有列继承用户定义数据类型的现有列继承default,除非默认值直接绑定到列中除非默认值直接绑定到列中。默认值无法绑定到默认值无法绑定到timestamp数据类型的列、带数据类型的列、带IDENTITY属性的列或者已经有属性的列或者已经有DEFAULT约束的列。约束的列。应用默认对象(应用默认对象(T-SQL语句)语句)futureonly_flag仅在将默认值绑定到用户定义的数据仅在将默认值绑定到用户定义的数据类型时才使用。类型时才使用。其值为其值为NUL
9、L时,说明将表中该用户定义数据类型列时,说明将表中该用户定义数据类型列的默认值设置为当前默认对象之值。的默认值设置为当前默认对象之值。其值为其值为futureonly时,说明当前所应用的默认对象不时,说明当前所应用的默认对象不影响表中已存在的用户定义数据类型列的默认值,而影响表中已存在的用户定义数据类型列的默认值,而只对以后插入行产生影响。只对以后插入行产生影响。【例例】将默认值绑定到列。】将默认值绑定到列。假定已经用假定已经用CREATE DEFAULT语句在当前数据库语句在当前数据库中定义了名为中定义了名为Chengji的默认值,此示例将默认值绑的默认值,此示例将默认值绑定到定到 SC表的
10、表的Grade列。当将行添加到列。当将行添加到SC 表而且没表而且没有提供有提供Grade列的数据时,列取得默认值列的数据时,列取得默认值 Chengji的的值。值。exec sp_bindefault Chengji,SC.Grade go【例例】将默认值绑定到用户定义的】将默认值绑定到用户定义的数据类型。数据类型。假定存在名为假定存在名为def_ssn的默认值和名为的默认值和名为ssn的用户定义数据类的用户定义数据类型,此例将默认值型,此例将默认值def_ssn绑定到用户定义的数据类型绑定到用户定义的数据类型 ssn中。中。在创建表时,所有指派了用户定义数据类型在创建表时,所有指派了用户定
11、义数据类型ssn的列都将继承的列都将继承默认值。类型默认值。类型ssn的现有列也继承默认值的现有列也继承默认值 def_ssn,除非为,除非为futureonly_flag值指定了值指定了futureonly,或者在列上直接绑定了,或者在列上直接绑定了默认值。绑定到列的默认值始终默认值。绑定到列的默认值始终优先于优先于绑定到数据类型的默绑定到数据类型的默认值。认值。exec sp_bindefault def_ssn,ssn go【例例】使用】使用 futureonly_flag。此示例将默认值此示例将默认值def_ssn绑定到用户定义的数据类绑定到用户定义的数据类型型 ssn。因为已指定。因
12、为已指定futureonly,所以不影响类型,所以不影响类型ssn 的现有列。的现有列。exec sp_bindefault def_ssn,ssn,futureonly go 解除绑定(企业管理器)解除绑定(企业管理器)如果不再需要默认值的应用,则可以使用系统存储过程如果不再需要默认值的应用,则可以使用系统存储过程sp_unbindefault解除默认值与列和用户定义数据类型之解除默认值与列和用户定义数据类型之间的关联。间的关联。如果要删除某个默认值,则首先要解除此默认值的一切如果要删除某个默认值,则首先要解除此默认值的一切绑定。绑定。无论是列还是用户定义数据类型,只能同时关联一个默无论是列
13、还是用户定义数据类型,只能同时关联一个默认值,当关联新的默认值时,旧的关联自动删除。认值,当关联新的默认值时,旧的关联自动删除。解除绑定(企业管理器)解除绑定(企业管理器)展开需要删除默认对象的数据库;展开需要删除默认对象的数据库;在对象上右键单击在对象上右键单击“属性属性”;单击单击“Default Properties”对话框的对话框的“Bind Columns”按钮;按钮;单击单击“Bind Default to Columns”对话框的对话框的“Table”下拉按下拉按钮,选择数据表;钮,选择数据表;在在“Unbound columns”栏中选择需要解除绑定的列;栏中选择需要解除绑定的
14、列;单击单击“Remove”按钮;按钮;单击单击“确定确定”。解除绑定(解除绑定(T-SQL语句)语句)使用使用sp_unbindefault在当前数据库中为列或用户定义数在当前数据库中为列或用户定义数据类型解除默认值绑定。据类型解除默认值绑定。语法格式为:语法格式为:sp_unbindefault objname=对象名对象名 ,futureonly=futureonly_flag 对象名是要解除默认值绑定的表和列或者用户定义数据对象名是要解除默认值绑定的表和列或者用户定义数据类型的名称。类型的名称。futureonly=futureonly_flag仅用于解除用户定义数仅用于解除用户定义数
15、据类型默认值的绑定。据类型默认值的绑定。设置为设置为futureonly时,现有的属时,现有的属于该数据类型的列不会失去指定的默认值。于该数据类型的列不会失去指定的默认值。【例例】为列解除默认值绑定。】为列解除默认值绑定。为表为表 employees 的的 hiredate 列解除默认值绑定。列解除默认值绑定。exec sp_unbindefault employees.hiredate【例】为用户定义数据类型解除默认值绑定。【例】为用户定义数据类型解除默认值绑定。为用户定义数据类型为用户定义数据类型 ssn 解除默认值绑定。这将为该数解除默认值绑定。这将为该数据类型的现有列和将来的列解除绑定
16、。据类型的现有列和将来的列解除绑定。exec sp_unbindefault ssn【例】使用【例】使用 futureonly_flag。为用户定义数据类型为用户定义数据类型 ssn 解除默认值绑定,现有的解除默认值绑定,现有的 ssn 列不受影响。列不受影响。exec sp_unbindefault ssn,futureonly 删除默认值(企业管理器)删除默认值(企业管理器)右键单击默认对象;右键单击默认对象;单击单击“删除删除”按钮;按钮;单击单击“Drop Object”对话框的对话框的“Drop All”按钮。按钮。删除默认值删除默认值 使用使用DROP DEFAULT从当前数据库中
展开阅读全文