Вопрос

Я пытаюсь создать стойкий замок 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-я сторона готова переименовать его к тому, что это должно быть

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top