Pregunta

Estoy intentando crear un SQL persistente (SQL Server 2005) bloqueo en un nivel de tabla. No estoy actualizar / consultar la tabla especificada, pero tengo que evitar que una aplicación de terceros a partir de la actualización de la tabla bloqueada como un medio para prevenir las transacciones de ser publicado (la tabla Deseo bloqueo es la clave de su operación que interfiere con mi procesamiento).

A partir de mi experiencia, la tabla sólo está bloqueado por el momento de una transacción específica está teniendo lugar. Algunas ideas?

El desarrollador tercera parte haya registrado esta característica como una mejora, pero ya que están en el medio del despliegue de una versión principal que se puede esperar que esperar al menos 6 meses para esto. Sé que esto no es una gran solución, ya que su software se caiga, pero es de una naturaleza lo suficientemente crítico que estamos dispuestos a vivir con las consecuencias.

¿Fue útil?

Solución

Mover la tabla a un grupo de archivos diferente, entonces alterar el grupo de archivos de sólo lectura. La mesa estará vigente sólo lectura:

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;

Otros consejos

cambiar el nombre de la mesa y cuando la tercera parte es de cambio de nombre listo de nuevo a lo que debería ser

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top