当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server常用到的几个设置选项

MSSQL
sql 批量修改数据库表
mssql CASE,GROUP BY用法
利用SQL SERVER建立登录WINDOWS帐号
SQL Server 2008 正式版安装指南 包含序列号
SQL Server 2008图文安装教程
sql 语句 取数据库服务器上所有数据库的名字
sqlserver 数据类型转换小实验
SQL Server 存储过程解析
压缩技术给SQL Server备份文件瘦身
SQL Server 2005 还原数据库错误解决方法
Sql Server datetime问题
SQL语句 操作全集 学习mssql的朋友一定要看
格式导致的Excel导入sql出现异常的解决方法
SQL Server 数据库自动执行管理任务
sql Set IDENTITY_INSERT的用法
sql 修改表的所有者
过程需要参数 ''@statement'' 为 ''ntext/nchar/nvarchar'' 类型
mssql 建立索引
SQL Server 索引结构及其使用(一)--深入浅出理解索引结构
SQL Server 索引结构及其使用(二) 改善SQL语句

MSSQL 中的 SQL Server常用到的几个设置选项


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 83 ::
收藏到网摘: n/a

        1. SET DEADLOCK_PRIORITY
  2. SET LOCK_TIMEOUT
  3.@@LOCK_TIMEOUT
  4.SET IDENTITY_INSERT
  5.SET IMPLICIT_TRANSACTIONS
  6.SET NOCOUNT
  7.@@ROWCOUNT
  8.SET ROWCOUNT
  9.SET TRANSACTION ISOLATION LEVEL
  10.SET XACT_ABORT
  1. SET DEADLOCK_PRIORITY

  说明:控制在发生死锁情况时会话的反应方式。如果两个进程都锁定数据,并且直到其它进程释放自己的锁时,每个进程才能释放自己的锁,即发生死锁情况。

  语法:SET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }

  参数:LOW  指定当前会话为首选死锁牺牲品。Microsoft® SQL Server™ 自动回滚死锁牺牲品的事务,并给客户端应用程序返回 1205 号死锁错误信息。
  NORMAL  指定会话返回到默认的死锁处理方法。
  @deadlock_var 是指定死锁处理方法的字符变量。如果指定 LOW,则 @deadlock_var 为 3;如果指定 NORMAL,则 @deadlock_var 为 6。

  注释:SET DEADLOCK_PRIORITY 的设置是在执行或运行时设置,而不是在分析时设置。

  权限:SET DEADLOCK_PRIORITY 权限默认授予所有用户。

  2. SET LOCK_TIMEOUT

  说明:指定语句等待锁释放的毫秒数。

  语法:SET LOCK_TIMEOUT timeout_period

  参数:timeout_period 是在 Microsoft® SQL Server™ 返回锁定错误前经过的毫秒数。值为 -1(默认值)时表示没有超时期限(即无限期等待)。
  当锁等待超过超时值时,将返回错误。值为 0 时表示根本不等待,并且一遇到锁就返回信息。

  注释:在连接开始时,该设置的值为 -1。设置更改后,新设置在其余的连接时间里一直有效。
  SET LOCK_TIMEOUT 的设置是在执行或运行时设置,而不是在分析时设置。
  READPAST 锁定提示为该 SET 选项提供了另一种方式。

  权限:SET LOCK_TIMEOUT 权限默认授予所有用户。

  示例:下例将锁超时期限设置为 1,800 毫秒。

  SET LOCK_TIMEOUT 1800
  GO

  3. @@LOCK_TIMEOUT

  说明:返回当前会话的当前锁超时设置,单位为毫秒。

  语法:@@LOCK_TIMEOUT

  返回类型:integer

  注释:SET LOCK_TIMEOUT 允许应用程序设置语句等待阻塞资源的最长时间。当一条语句已等待超过 LOCK_TIMEOUT 所设置的时间,则被锁住的语句将自动取消,并给应用程序返回一条错误信息。
  在一个连接的开始,@@LOCK_TIMEOUT 返回一个 –1值。

  示例:下面的示例显示当一个 LOCK_TIMEOUT 值未被设置时的结果集。

  SELECT @@LOCK_TIMEOUT
  下面是结果集:
  ----------------
  -1

  下面的示例设置 LOCK_TIMEOUT 为 1800 毫秒,然后调用 @@LOCK_TIMEOUT。

  SET LOCK_TIMEOUT 1800
  SELECT @@LOCK_TIMEOUT

  下面是结果集:
  ------------------------------
  1800

  4. SET IDENTITY_INSERT

  说明:允许将显式值插入表的标识列中。

  语法:SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF }

  参数:database 是指定的表所驻留的数据库名称。
  owner 是表所有者的名称。
  table 是含有标识列的表名。

  注释:任何时候,会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON。如果某个表已将此属性设置为 ON,并且为另一个表发出了 SET IDENTITY_INSERT ON 语句,则 Microsoft® SQL Server™ 返回一个错误信息,指出 SET IDENTITY_INSERT 已设置为 ON 并报告此属性已设置为 ON 的表。
  如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用。
  SET IDENTITY_INSERT 的设置是在执行或运行时设置,而不是在分析时设置。

  权限:执行权限默认授予 sysadmin 固定服务器角色和 db_owner 及 db_ddladmin 固定数据库角色以及对象所有者。

  示例:下例创建一个含有标识列的表,并显示如何使用 SET IDENTITY_INSERT 设置填充由 DELETE 语句导致的标识值中的空隙。

  -- Create products table.
  CREATE TABLE products (id int IDENTITY PRIMARY KEY, product varchar(40))
  GO
  -- Inserting values into products table.
  INSERT INTO products (product) VALUES ('screwdriver')
  INSERT INTO products (product) VALUES ('hammer')
  INSERT INTO products (product) VALUES ('saw')
  INSERT INTO products (product) VALUES ('shovel')
  GO

<