永发信息网

SQLServer常用到的几个设置选项

答案:2  悬赏:20  手机版
解决时间 2021-12-22 08:07
  • 提问者网友:佞臣
  • 2021-12-21 08:04
SQLServer常用到的几个设置选项
最佳答案
  • 五星知识达人网友:酒者煙囻
  • 2021-12-21 08:35
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楼网友:深街酒徒
  • 2021-12-21 09:34
我们知道,sql server事务日志主要是用来记录所有事务对数据库所做的修改,如果系统出现故障,它将成为最新数据的唯一来源。日志的操作常有以下几个应用: 一、事务日志文件ldf的丢失 当我们不小删除或者ldf文件丢失的时候,数据库只剩下mdf文件,此时直接通过附加mdf是无法恢复数据库的,那我们怎么样才能恢复数据库呢?我们可以把sql server的日志文件分为两种形式:一类是无活动事务的日志,另一类是有活动事务的日志,我们分别根据两种情况来进行数据库恢复。 1、无活动事务的日志恢复 当文件并没有发生活动性的日志,我们就可以很容易的利用mdf文件就可以直接恢复数据库了,具体操作方法如下: 1)数据库要是没有日志,就会处于置疑的状态,我们先可以通过企业管理器中在对应数据库中点击右键,然后在“所有任务”下选择“分离数据库”把数据库进行分离; 2)利用mdf文件附加数据库生成新的日志文件,可用企业管理器中数据库点击右键选择“所有任务”下的“附加数据库”把数据库附加上。 这样就可以直接恢复好数据库了,而如果数据库的日志文件中含有活动事务,利用此方法就不能恢复数据库,所以得使用下面的方法。 2、有活动事务的日志恢复 当日志发生了事务的记录,丢失的时候,我们采用如下的方法来实现: 1)新建一个同名的数据库,如原数据库名为mydb,然后停止sql server服务器,再把数据库主数据mdf文件移走,然后重新启动sql server服务器,新建一个同名的数据库mydb,然后再停止sql server服务器,把移走的mdf文件再覆盖回来,然后再重新启动sql server服务器,在默认的情况下,系统表是不允许被修改的,我们需要运行以下语句才可以,在查询分析器中,选择master数据库,然后执行: sp_configure 'allow updates',1 reconfigure with override 接着运行以下语句,把sysdatabases表中mydb数据库的status属性设为‘37268’,把mydb数据库设置为紧急模式。 update sysdatabases set status=32768 where name=’mydb’ 然后再把数据库mydb设置为单用户模式,然后重启sql server服务器,并把数据库mydb设为单用户模式 sp_dboption 'mydb','single user', 'true'
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯