- 打印本文 关闭窗口
- ASP与SQL网站数据库程序设计(6)
- 作者:. 文章来源:科学出版社 点击数: 更新时间:2004/1/24 23:14:19
- (简易)。设置为FULL,则所有的操作,包括:SELECT INTO,CREATE INDEX与大量加载数据这类大量操作,都会被完整记录,数据库备份与事务记录文件备份,可以让数据库从媒体失败中完全复原。
设置为BULK_LOGGED,会将所有SELECT INTO,CREATE INDEX与大量加载数据操作的记录工作减至最少,减少记录文件所需的空间。这虽然可以取得较佳的效率与较少的记录文件空间,但相对来说,其损失数据的危险性比完整复原大。
SIMPLE复原模块则只能将数据库复原到最后的完整数据库备份,或最后的差异式备份(Differential Backup)。
2. TORN_PAGE_DETECTION
这个复原选项默认为ON,允许SQL Server侦测因停电或其他系统中断所造成的I/O操作不完全。损坏页通常是在复原期间被侦测到,因为任何错误写入的页面都会在复原时被读取到。
当系统侦测到损坏页时,会产生I/O错误并中断联机;若在复原时侦测到损坏页,数据库也会标记成有疑问。这时必须还原数据库备份,并套用到任何的事务纪录文件备份,因为数据库实际上并不一致。
5-6-4 SQL选项
SQL选项控制了ANSI的兼容性选项,主要包含以下内容。
ANSI_NULL_DEFAULT允许用户控制数据库的默认空值属性。当用户自定义的数据类型或数据行定义中NULL或NOT NULL值并未明确指定时,用户自定义的数据类型或数据行定义会使用默认设置作为空值属性。空值属性是由工作阶段与数据库设置时所决定的。当这个选项被设置为ON时,如果在CREATE TABLE或ALTER TABLE时没有明确定义为NOT NULL,则所有用户自定义的数据类型或数据行都默认为允许空值。
ANSI_NULLS控制NULL空值的兼容性,默认为OFF。设成ON,所有无效值皆为NULL;若设成OFF,如果非Unicode值与无效值都为NULL,则两者的值为TRUE。在计算数据行或索引视图表中建立或管理索引时,ANSI_NULLS必须被设为ON。
ANSI_PADDING控制数据行的填补方式,设成ON,插入varchar数据行的字符数值末尾空白,以及插入varbinary数据行的二进制数值末尾零将不会被删除,而且数值也不会填至数据行的长度。若设成OFF,末尾的空白(针对varchar)与零(针对varbinary)将会被删减,这个设置只会影响新的数据行定义。当ANSI_PADDING为ON时,允许空值的Char(n)与binary(n)数据行将填至数据行的长度;当ANSI_PADDING为OFF时,末尾的空白与零将被删减。不允许空值的Char(n)与binary(n)数据行则一定会填至数据行的长度。在计算数据行或索引视图表中建立或管理索引时,ANSI_PADDING必须设为ON。
ANSI_WARNINGS控制是否在发生“除以零”或加总功能出现空值等情况时发出错误或警告。默认为OFF,表示不要发出警告,发生“除以零”的情况时返回空值。在计算数据行或索引视图表中建立或管理索引时,ANSI_WARNINGS必须被设成ON。
ARITHABORT控制溢位的处理方式,若设成ON,溢位或除以零的错误将导致查询或批处理终止。若错误发生在事务之中,该事务将会复原。若将ARITHABORT设置为OFF,在发生上述错误时,系统将显示一个警告信息,但查询、批处理或事务仍将持续处理。建立或操作计算数据行索引或索引视图表时,ARITHABORT必须设置为ON。
NUMERIC_ROUNDABORT控制当表达式损失精确度时的处理方式。设置为ON,损失精确度将会产生一个错误;若为OFF,损失精确度则不会产生错误信息,而将进位成存储该结果的数据行或变量的精确度。在计算数据行或索引视图表中建立或管理索引时, NUMERIC_ROUNDABORT必须设为OFF。
CONCAT_NULL_YIELDS_NULL控制当操作数在串联运算过程中的值为NULL时返回的结果,默认为OFF,产生字符串,空值会被视为空字符串。若设成ON,则运算结果为NULL。例如,字符串“This is”与NULL使用连接字符连接的值为NULL,而不是“This is”值。在计算数据行或索引视图表中建立或管理索引时,CONCAT_NULL_YIELDS_NULL必须设为ON。
QUOTED_IDENTIFIER选项是否使用引号识别项,设置成ON,识别项可由双引号分隔,而常量(Literal)则必须由单引号来分隔。所有以双引号分隔的字符串都被解译成对象识别项。加上引号的识别项不一定要遵循识别项的Transact-SQL规则。它们可以是关键词也可以包含一般在Transact-SQL识别项中不允许的字符。若设成OFF(默认),识别码必须遵循Transact-SQL识别项规则。
RECURSIVE_TRIGGERS控制是否递归地激活触发程序。设置为ON,表示要递回激活;设置为OFF(默认),则触发程序无法以递归的方式激活。
5-6-5 状态选项
状态选项控制了数据库是在线或离线、谁可联机至数据库、数据库是否处于只读模式。利用一个终止子句来控制当数据库从一个状态转变成另一个状态时,联机该如何终止。
OFFLINE | ONLINE:设置数据库处于离线或在线状态,指定为OFFLINE,数据库将完全关闭与关机,并标示为离线状态。数据库处于离线状态时,无法修改该数据库。若指定为ONLINE,数据库将会打开并可供使用。
READ_ONLY | READ_WRITE:设置数据库只读模式或者是可擦写模式,指定为READ_ONLY,数据库将处于只读模式。这时用户可以从数据库撷取数据,但不可以修改数据。指定为READ_WRITE,用户可撷取与修改数据。
SINGLE_USER | RESTRICTED_USER | MULTI_USER:设置数据库的联机模式,SINGLE_USER表示一次只能让一个用户联机至数据库,所有其他的用户联机都将中断,而新的联机尝试将被拒绝。若要允许多重联机,数据库必须更改成RESTRICTED_USER或MULTI_USER模式。RESTRICTED_USER只允许db_owner固定数据库角色与dbcreator及sysadmin固定服务器角色的成员联机至数据库,它并没有限制联机的数目,资格不符的用户所做的新联机尝试将被拒绝。MULTI_USER 可让所有具有适当权限的用户都联机至数据库。
WITH <termination>:设置当数据库从一个状态转变成另一个状态时,未完成的事务该如何终止。事务将随着中断它们与数据库的联机而终止。若终止子句被略过,ALTER DATABASE语句将会一直等待,直到事务自行认可或复原为止。
ROLLBACK AFTER integer [SECONDS] :等待指定的秒数后中断资格不符的联机,不完全的事务将会复原。
ROLLBACK IMMEDIATE:立即中断资格不符的联机,而所有未完成的事务都会复原。
NO_WAIT:在更改数据库状态之前检查联机,当不符合资格的联机存在时,会导致ALTER DATABASE语句失败。
5-6-6 调整数据库选项
看完这些数据库选项后,接下来看看如何设置数据库的数据库选项。数据库选项的设置可以利用ALTER DATABASE语句的SET子句、sp_dboption系统存储过程或是使用SQL Server Enterprise Manager来进行设置。在这里,我们介绍较方便用户操作的Enterprise Manager设置。
在Enterprise Manager中,数据库选项的设置利用“数据库属性”对话框来进行,我们可以在数据库项目上按鼠标右键,并在打开的快捷菜单中选择“属性”命令,打开“数据库属性”对话框。
“常规”选项卡显示数据库的一些基本信息,如数据库名称、建立日期时间、数据库拥有人、文件大小、可用空间等信息,这些信息是从系统获取的,便能直接更改。
“数据文件”选项卡显示数据库的数据文件的文件位置与文件属性,有关它的画面及内容已经在前面介绍过。当数据库建立好后,可以通过这个选项卡来修改其设置,如增加或删除数据文件、更改数据文件的增长设置。不管怎么变动,请记住每一个数据库要有一个主数据文件。
“事务日志”选项卡提供用户用来更改先前的事务日志设置,其设置项目已经在前面介绍过了,在此不再重复赘述。
“文件组”选项卡提供给管理者用来管理数据库的文件组信息,其画面如图5-33所示,我们可以在上面建立新的文件组,或是将已定义的文件组删除(主文件组不能删除)。另外,还可以通过选择“只读”选项,将文件组设置为只读,使得所有存放于该文件组的表都成为只读的。
“选项”选项卡的画面如图5-34所示,在这个选项卡中,只要以勾选的方式设置使用或清除选项,或在下拉式菜单中选择要应用的选项,然后单击“确定”按钮,就可以完成更改数据库选项设置的动作(每一个选项的作用,请参考前面的选项说明)。
上一页 [1] [2] [3] [4] [5] [6] [7] 下一页
- 打印本文 关闭窗口