Frage

Ich versuche, eine persistente SQL (SQL Server 2005) Sperre auf Tabellenebene zu erstellen. Ich bin nicht aktualisiert / die angegebene Tabelle abfragt, aber ich brauche von der Aktualisierung der gesperrte Tabelle als Mittel einer Dritte Anwendung zu verhindern Transaktionen zu verhindern, dass geschrieben (die Tabelle I sperren möchte ist der Schlüssel für ihre Transaktion, dass stört meine Verarbeitung).

Aus meiner Erfahrung die Tabelle nur für die Zeit, eine bestimmte Transaktion stattfindet gesperrt ist. Irgendwelche Ideen?

Die 3rd-Party-Entwickler haben diese Funktion als Erweiterung angemeldet, aber da sie in der Mitte des Roll-out eine Major-Release sind, kann ich erwarten, dass mindestens 6 Monate für diese zu warten. Ich weiß, dass dies nicht eine große Lösung ist, da ihre Software wird umfallen, aber es ist von einer kritischen genug Natur, dass wir bereit sind, mit den Konsequenzen zu leben.

War es hilfreich?

Lösung

Bewegen Sie die Tabelle in eine andere Dateigruppe, dann ändern Sie die Dateigruppe schreibgeschützt. Die Tabelle wird in der Tat seine read-only:

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;

Andere Tipps

benennen Sie die Tabelle, und wenn die dritte Partei ist bereit Umbenennungs es zurück zu dem, was es sein sollte

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top