数据库PUBS中的authors表,想锁定CITY为aaa的记录,为什么执行下面的命令后,CITY为bbb的记录也被锁定了,无法进行UPDATE.
BEGIN TRANSACTION
SELECT * FROM authors
WITH (HOLDLOCK)
WHERE city='aaa'
如何才能锁定CITY为AAA的记录,而且CITY为BBB的记录依然能SELECT和UPDATE?
阅读全文>
发表于 @ 2006年09月17日 13:24:00|评论(loading...)|收藏
用ADO访问数据库,从一个表中取一定的记录(比如20行),取出后在程序中使用,使用完后删除掉记录(不用更新或删除记录)。在多用户操作下(每个用户采用相同的操作),怎么保证一个用户已选取的记录不被其他用户选取?
处理这类问题的一般方法是增加一个标志列,每个用户取的记录设置一个标志,新的用户只从标志为未取的记录中获取记录。
而本文利用事务与锁来控制数据的处理,不需要增加任何标志列
阅读全文>
发表于 @ 2006年08月28日 20:31:00|评论(loading...)|收藏
跟踪标记 1204 用于返回参与死锁的锁的类型以及当前受影响的命令。死锁信息将自动发送到错误日志。 开启跟踪标记使用 DBCC TRACEON ,第3个参数指定为-1,表示不单单针对当前connection,而是针对所有包括未来建立的connection关闭跟踪标记使用 DBCC TRACEOFF 本文介绍在查询分析器中使用跟踪标记 1204 的演示, 死锁的信息被记录在 SQL Server 日志中,可以通过下面的方法查看:企业管理器 -- 展开实例 -- 管理 -- SQL Server 日志由于在企业管理器中查看时, 部分日志信息会被截断, 所以所以建议使用记事本一类的文本查看工具直接查看 \MSSQL\LOG 目录下的 ERRORLOG 文件有关死锁信息的详细说明参考联机帮助(联机丛书--菜单中的GO--URL--输入下面的地址:mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\trblsql.chm::/tr_servdatabse_5xrn.h阅读全文>
发表于 @ 2005年08月25日 09:15:00|评论(loading...)|收藏
用SQL语句来建立跟踪,下面是我用SQL的事件探察器设置跟踪,并生成的SQL脚本 现在有几个问题: 1.这个跟踪不会产生数据,用: select * from ::fn_trace_getinfo(1) 可以看到状态是在运行,但 c:\test.trc 始终是空文件 2.在事件探察器中设置筛选时,ObjectType 的说明是对应 sysobjects 表的 type 列,该列是字符型,但我输入字符时 要求是数字,这个数字从那里查? 3.如果只产生对 insert,update,delete 语句成功的跟踪事件 应该如何设置呢? 在 事件探察器 中无相关设置,用语句设置的话 只找到事件号 28, 在执行 SELECT、INSERT 或 UPDATE 语句之前发生 4.用事件探察器建立的跟踪,可以将跟踪结果保存到表中,但我下面生成的SQL脚本却不支持这个功能阅读全文>
发表于 @ 2004年07月21日 13:16:00|评论(loading...)|收藏
查看当前进程,或BLOCK进程,并能自动杀掉死进程 因为是针对block的,所以如果有block进程,只能查看block进程 当然,你可以通过参数控制,不管有没有block,都只查看block进程阅读全文>
发表于 @ 2004年04月13日 14:15:00|评论(loading...)|收藏