Question

Je suis en train de créer une serrure SQL persistante (SQL Server 2005) à un niveau de table. Je ne suis pas mise à jour / interrogation de la table spécifiée, mais je dois éviter une application tierce de mettre à jour la table verrouillée comme un moyen d'empêcher les transactions d'être affiché (la table, je souhaite verrouiller est la clé de leur transaction qui interfère avec mon traitement).

D'après mon expérience de la table est seulement bloqué pour le moment à une transaction spécifique a lieu. Toutes les idées?

Le développeur 3rd Party est connecté cette fonction comme une amélioration, mais comme ils sont au milieu du déploiement d'une version majeure, je peux attendre d'attendre au moins 6 mois pour cela. Je sais que ce n'est pas une excellente solution, car leur logiciel tomber, mais il est d'une nature assez critique que nous sommes prêts à vivre avec les conséquences.

Était-ce utile?

La solution

Déplacer la table à un groupe de fichiers, puis modifier le groupe de fichiers en lecture seule. Le tableau sera en lecture seule en effet:

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;

Autres conseils

renommer la table et quand la 3ème partie est prêt à le renommer ce qu'elle devrait être

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top