sp_getapplock的MSDN文档说:
[@ Resource =]'resource_name'是一个指定名称的字符串 标识锁资源。
sp_getapplock创建的锁资源是在当前数据库中创建的 会话。每个锁资源由以下组合值标识:
- 包含锁资源的数据库的数据库ID。
- @DbPrincipal参数中指定的数据库原则。
- @Resource参数中指定的锁名称。
我的问题:
1.'resource_name'是你组成的任何旧名字吗?
2.“resource_name”是否必须引用表名或存储过程名称或(命名)事务名称?
答案 0 :(得分:2)
是的,这是你编造的任何旧名称。你可以说“sp_getapplock'小猫'”它将等待“小猫”锁被释放后再获取它并继续。您必须定义有意义的序列化访问权限的资源。
我不喜欢在表之后命名锁的想法,因为这意味着当SQL Server中没有任何内容(applock框架除外)强制执行时,它会对其他编码器进行序列化访问。换句话说,applock有点像交通信号灯。红灯没有什么固有的东西阻止你前进。这不是一个好主意。