0
我有一些在事务内部创建表的SQL Compact查询。这主要是因为我需要模拟SQL Compact不支持的临时表。我通过创建一个真正的表,然后在交易结束时删除它。Sql Compact和__sysobjects
这大部分工作。但是,有时在创建表格时,Sql Compact将尝试获取__sysobjects表格上的PAGE级别锁定。如果有多个并发查询运行时创建“临时”表,则尝试获取页面锁可能会导致死锁,然后是SqlLockTimeout异常。
对于普通表格,我可以使用“with(rowlock)”提示来解决这个问题。然而,因为我没有写查询插入__sysobjets(SQL服务器是否响应“创建表”)我不能这样做。
有没有人知道我可以解决这个问题的方法?
我想过把表创建从事务中拉出来,但是这开辟了我需要定期清理的幻影临时表的可能性。理想情况下,如果可能,我想避免这种情况。
不幸的是没有。 SQL compact不支持表变量。 – 2009-09-06 04:29:06