C#のから永続的なSQLテーブルロック
-
26-09-2019 - |
質問
私は、永続的なSQL(SQL Server 2005の)テーブルレベルのロックを作成しようとしています。私は指定されたテーブルを照会/更新していないんだけど、私が掲示されることから取引を防止するための手段として、ロックされたテーブルの更新からサードパーティのアプリケーションを防ぐために必要がある(私はロックしたいの表は、その取引上のキーであることが干渉して私の処理)。
私の経験から、テーブルは、特定の取引が行われている時間のためにロックされています。任意のアイデア?
は、サードパーティの開発者は、機能拡張として、この機能をログに記録しているが、彼らはメジャーリリースを展開するの真ん中にあるので、私は、このために、少なくとも6ヶ月を待つことを期待することができます。彼らのソフトウェアが倒れますので、私は、これは素晴らしい解決策ではないことを知っているが、それは結果で生活する私たちだが喜んでいることが重要に十分な性質のものである。
解決
次に、読み取り専用にファイルグループを変更、異なるファイルグループにテーブルを移動します。テーブルが有効になります読み取り専用ます:
ALTER DATABASE dbName
ADD FILEGROUP ReadOnlyFG;
GO
ALTER DATABASE dbName
ADD FILE (
NAME = ...,
FILENAME = '...')
TO FILEGROUP ReadOnlyFG;
GO
ALTER TABLE tableName MOVE TO ReadOnlyFG;
GO
ALTER DATABASE dbName
MODIFY FILEGROUP ReadOnlyFG READONLY;
他のヒント
は、テーブルの名前を変更し、サードパーティの準備ができて、リネーム、それが戻ってそれがどうあるべきかにあるとき、
所属していません StackOverflow