Постоянный замок SQL таблицы от C #
-
26-09-2019 - |
Вопрос
Я пытаюсь создать стойкий замок SQL (SQL Server 2005) на уровне таблицы. Я не обновляю / запрашивая указанную таблицу, но мне нужно предотвратить обновление заблокированной таблицы третьего лица в качестве средства для предотвращения размещения транзакций (таблица, которую я хочу заблокировать, является ключом к их транзакции, которая мешает моя обработка).
Из моего опыта таблица заблокирована только за время определенной транзакции. Есть идеи?
3-й разработчик Party зарегистрировал эту функцию как усовершенствование, но поскольку они находятся в середине выпуска крупного выпуска, я могу ожидать, что для этого ждать не менее 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;
Другие советы
переименовать таблицу и когда 3-я сторона готова переименовать его к тому, что это должно быть