SQL Server 2008数据库创建过程和可配置选项(二)

2014-11-24 13:29:16 · 作者: · 浏览: 7
时候,任何语句或事务在遇到算术溢出或被零除错误后都将终止,设定为False的时候,会发出一个警告,但不是终止语句。同样可以在连接级别或者数据库级别设置:
SET ARITHABORT OFF
SET ARITHABORT ON
ALTER DATABASE Adventureworks2008 SET ARITHABORT OFF
ALTER DATABASE Adventureworks2008 SET ARITHABORT ON
  自动创建统计信息:设置为True的时候,数据库引擎为那些JOIN操作的WHERE子句或ON子句中引用的、缺少统计信息的非索引列生成统计信息
ALTER DATABASE Adventureworks2008 SET AUTO_CREATE_STATISTICS OFF
ALTER DATABASE Adventureworks2008 SET AUTO_CREATE_STATISTICS ON
  自动更新统计信息:设置为True时,数据库引擎会自动更新列的统计信息,从而保持最有效的查询计划,如果设置为False则需要数据库管理员手动更新统计信息
ALTER DATABASE Adventureworks2008 SET AUTO_UPDATE_STATISTICS OFF
ALTER DATABASE Adventureworks2008 SET AUTO_UPDATE_STATISTICS ON
  自动异步更新统计信息:设置为True时,查询中发现的国企统计信息将被更新,但发现这些国企统计信息时正在执行的查询不会等待新的统计信息,后续的查询将会利用新的统计信息,当设置为False的时候,只有统计信息更新之后才进行查询编译:
ALTER DATABASE Adventureworks2008 SET AUTO_UPDATE_STATISTICS_ASYNC OFF
ALTER DATABASE Adventureworks2008 SET AUTO_UPDATE_STATISTICS_ASYNC ON
  默认游标:游标始终基于生命它的连接。当设置为Global时,制定了生命的游标可被统一连接上执行的任意批处理、存储过程和触发器引用。如果设置为Local,游标只能在声明了它的批处理、存储过程或触发器中引用
ALTER DATABASE Adventureworks2008 SET CURSOR_DEFAULT LOCAL
ALTER DATABASE Adventureworks2008 SET CURSOR_DEFAULT GLOBAL
  验证页:验证页为数据库管理员可以为写页设定不同的选项。可用的选项包括Checksun,Torn_Page_Detection和None。对于性能来说最好的选择的None,但是此设置会使数据库无法检测到数据损坏。Checksun提供了最好的保证,无论是数据写操作还是写操作之后发生的对磁盘数据的任意修改都会被校验和验证检测到,但是会占用最多的CPU周期;Torn_Page_Detection选项是一种检测损坏页的低成本方法,但是只会检测在写操作期间发生的页损坏,推荐设置是Checksun
ALTER DATABASE Adventureworks2008 SET PAGE_VERITY NONE
ALTER DATABASE Adventureworks2008 SET PAGE_VERITY TORN_PAGE_DETECTION
ALTER DATABASE Adventureworks2008 SET PAGE_VERITY CHECKSUM
  参数化:默认情况下数据库引擎将一些查询参数化,这样即使在WHERE子句中定义了不同的值,创建并编译的查询计划也可重用,如果设置为简单,SQL Server会决定参数化哪些查询和不参数化哪些查询;设置为强制时,SQL Server会把所有可参数化的查询参数化,而同样的查询会得到一个参数化查询计划。强制自动参数化优势能改善性能,但是需要仔细监控以确保它对性能没有负面影响
ALTER DATABASE Adventureworks2008 SET PARAMETERIZATION SIMPLE
ALTER DATABASE Adventureworks2008 SET PARAMETERIZATION FORCED
  允许带引号的标识符:默认情况下SQL Server使用方括号来界定对象,只有在对象名中包含嵌入的空格或保留字时才需要界定对象。ANSI标准定界符是双引号,下面的例子说明了如何使用方括号和双引号创建和引用一个包含嵌入空格的对象:
USER Adventureworks2008
GO
CREATE TABLE "Sales.USA Customers"
(AccuNumber int IDENTITY(1,1) NOT NULL,
"Last Name" varchar(75) NOT NULL,
"First Name" varchar(75) NOT NULL)
SELECFT AcctNumber,"Last Name","First Name" FROM "Sales.USA Customers"
USER Adventureworks2008
GO
CREATE TABLE [Sales.USA Customers]
(AccuNumber int IDENTITY(1,1) NOT NULL,
[Last Name] varchar(75) NOT NULL,
[First Name] varchar(75) NOT NULL)
SELECFT AcctNumber,[Last Name],[First Name] FROM [Sales.USA Customers]
  当“允许带引号的标识符”为True的时候,方括号和双引号都可以使用,为False的时候,值有方括号定界符可以使用,要在连接级别或者数据库级别进行设置的时候如下
SET QUOTED_IDENTIFIER OFF
SET QUOTED_IDENTIFIER ON
ALTER DATABASE Adventureworks2008 SET QUOTED_IDENTIFIER OFF
ALTER DATABASE Advetnureworks2008 SET QUOTED_IDENTIFIER ON
  递归触发器已启用:递归触发器是一项高级 编程技术,它允许统一触发器在同一事务中按顺序执行多次。当设置为False是,这一操作时不允许的。
ALTER DATABASE Adventureworks2008 SET RECURSIVE_TRIGGERS OFF
ALTER DATABASE Adventureworks2008 SET RECURSIVE_TRIGGERS ON
  限制访问:限制访问选项使数据库管理员可以把对数据库的访问限制为一组已定义的登录名。该选项的默认值是MULTI_USER,允许多个无权限的用户访问数据库,此外还有两个选项SINGLE_USER和RESTRICTED_USER,如果设置为SINGLE_USER,那么一次就只有一个用户帐户可以访问数据库,如果设置为RESTRICTED_USER,那么只有db_owner,dbcreator或