SQL Server 2008 R2 中是否有办法导致涉及事务的数据库修改超时?我们有一个场景,我们的应用程序代码挂起或抛出异常并且无法执行回滚或提交。这会导致其他会话挂起等待事务完成。
LOCK_TIMEOUT
最后是什么时期?
我在登录后执行一个SET LOCK_TIMEOUT 10
和SELECT @@LOCK_TIMEOUT
一个命令并返回 10。在此之后,我立即SELECT @@LOCK_TIMEOUT
再次执行 a并返回 -1。我会认为它仍然是10。
我在 MSDN 站点上做了一些查找,但找不到LOCK_TIMEOUT
是基于会话还是基于语句。
注意:我是开发人员...
我有一个资产表,其中包含许多代码,这些代码是进入第二个表 OutlineFiles 的外键。OutlineFiles 表将类型和代码作为主键。外键约束需要看起来像这样......
ALTER TABLE "dbo"."Assets"
ADD CONSTRAINT "Locations" FOREIGN KEY ( "LN", "LocationCode" ASC )
REFERENCES "dbo"."OutlineFiles" ( "Type", "Code" );
ALTER TABLE "dbo"."Assets"
ADD CONSTRAINT "CostCentre" FOREIGN KEY ( "CC", "CostCentreCode" ASC )
REFERENCES "dbo"."OutlineFiles" ( "Type", "Code" );
Run Code Online (Sandbox Code Playgroud)
因此,将通过“LN”和“CC”的固定值与轮廓表建立关系。或者将数据库更改为有两个表并删除 OutlineFiles 表上的 Type 列会更容易吗?我正在 Sybase 中尝试这个,但我们支持许多数据库。