|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
有了rowbase的binlog后,我们来分析一下怎么实现闪回。平时的DML无非三种操作,增删改,先说三种操作的日志格式。缺省值(Default)是往用户输出纪录时没有指定详细数据的列中主动拔出的数据。缺省值工具与ALTERTABLE或CREATETABLE命令操纵表时用DEFAULT选项指定的缺省值功效类似,但缺省值工具能够用于多个列或用户自界说数据范例,它的办理与使用同划定规矩有很多类似的地方。表的一列或一个用户自界说数据范例也只能与一个缺省值相绑定。
9.3.1创立缺省值
(1)用CREATEDEFAULT命令创立缺省值
CREATEDEFAULT命令用于在以后数据库中创立缺省值工具,其语法以下:
CREATEDEFAULTdefault_nameASconstant_expression
个中constant_expression子句是缺省值的界说。constant_expression子句能够是数学表达式或函数,也能够包括表的列名或别的数据库工具。例9-11:创立诞辰缺省值birthday_defa。
createdefaultbirthday_defa
as1978-1-1
例9-12:创立姓名缺省值name_defa。
createdefaultname_defa
asuser
(2)用EnterpriseManager创立缺省值
在EnterpriseManager当选择数据库工具“Defaults”,单击右键,从快速菜单当选择N“ewDefault”选项,即会弹出如-6所示的创立缺省值属性对话框。输出缺省值称号和值表达式以后,单击“断定”按钮,即完成缺省值的创立。
9.3.2检察缺省值
(1)用EnterpriseManager检察缺省值
在EnterpriseManager当选择“Defaults”工具,便可从右侧的义务板中看到缺省值的年夜部分信息。如-7所示。也能够选择要检察的缺省值,单击右键,从快速菜单当选择“Properties”选项,即会呈现如-8所示的缺省值属性对话框,能够从中编纂缺省值的
值表达式。修正缺省值称号的办法与修正划定规矩称号的办法不异,能够用Sp_rename存储历程修正,也能够在企业办理器的义务板窗口中间接修正。
(2)用存储历程Sp_helptext检察缺省值
利用Sp_helptext存储历程能够检察缺省值的细节。
例9-13:检察缺省值today。
execsp_helptexttoday
运转了局以下:
------------------------------------------------------------------
Text
------------------------------------------------------------------
createdefault[dp_date]asgetdate()
9.3.3缺省值的绑定与松绑
创立缺省值后,缺省值仅仅只是一个存在于数据库中的工具,并未产生感化。同划定规矩一样,必要将缺省值与数据库表或用户自界说工具绑定。
(1)用EnterpriseManager办理缺省值的绑定
在EnterpriseManager中,选择要举行绑定设置的缺省值,单击右键,从快速菜单当选择“Properties”选项,即会呈现如-8所示的缺省值属性对话框。
-8中的“BindUDTs…”按钮用于绑定用户自界说数据范例,“BindColumns…”按钮用于绑定表的列。在-8中单击“BindUDTs…”按钮,则呈现如-9所示的绑定缺省值到用户自界说数据范例的对话框;单击“BindColumns…”按钮,则呈现如-
10所示的绑定缺省值到表的列的对话框。用它们来办理缺省值与表的列和用户自界说数据范例之间的绑定十分便利。
(2)用存储历程Sp_bindefault绑定缺省值
存储历程Sp_bindefault能够绑定一个缺省值到表的一个列或一个用户自界说数据范例上。其语法以下:
sp_bindefault[@defname=]default,
[@objname=]object_name
[,futureonly]
个中futureonly选项仅在绑定缺省值到用户自界说数据范例上时才可使用。当指定此选项时,仅今后利用此用户自界说数据范例的列会使用新缺省值,而以后已利用此数据范例的列则不受影响。
例9-14:绑定缺省值today到用户自界说数据范例hire_date上。
execsp_bindefaulttoday,hire_date
运转了局以下:
---------------------------------------------------------
Defaultboundtodatatype.
Thenewdefaulthasbeenboundtocolumns(s)ofthespecifieduserdatatype.
(3)用存储历程Sp_unbindefault排除缺省值的绑定
存储历程Sp_unbindefault能够排除缺省值与表的列或用户自界说数据范例的绑定,其语法以下:
Sp_unbindefault[@objname=]object_name
[,futureonly]
个中futureonly选项同绑准时一样,仅用于用户自界说数据范例,它指定现有的用此用户自界说数据范例界说的列仍旧坚持与此缺省值的绑定。假如不指定此项,一切由此用户自界说数据范例界说的列也将随之排除与此缺省值的绑定。
例9-15:排除缺省值num_default与表products的quantity列的绑定。
execsp_unbindefault‘products.[quantity]’
运转了局以下:
---------------------------------------------------------
(1row(s)affected)
Defaultunboundfromtablecolumn.
注重:假如列同时绑定了一个划定规矩和一个缺省值、那末缺省值应当切合划定规矩的划定。
不克不及绑定缺省值到一个用CREATETABLE或ALTERTABLE命令创立或修正表时用DEFAULT选项指定了的缺省值的列上。
9.3.4删除缺省值
能够在EnterpriseManager当选择缺省值,单击右键,从快速菜单当选择“Delete”选项删除缺省值,也能够利用DROPDEFAULT命令删除以后数据库中的一个或多个缺省
值。其语法以下:
DROPDEFAULT{default_name}[,...n]
注重:在删除一个缺省值前必需先将与其绑定的工具排除绑定。
例9-16:删除诞辰缺省值birthday_defa。
dropdefaultbirthday_defa
本章小结
数据完全性工具的使用是SQLServer的一年夜特性,它经由过程在数据库端利用特定的划定来办理流进与输入体系的信息,而不是由使用程序自己来把持信息的范例,这使得数据自力与使用程序成为开放的数据库体系。
支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统 |
|