sql >> Base de Datos >  >> RDS >> Sqlserver

¿Cómo hacer una tabla de solo lectura en SQL Server?

Una alternativa simple que bloquearía la actualización y la inserción en una tabla específica pero aún permitiría eliminar:

ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )

Tenga en cuenta:esto evita INSERCIONES y ACTUALIZACIONES, pero permite ELIMINACIONES.

Si realmente necesita que una tabla sea realmente de solo lectura, también puede:

a) ponerlo en su propia base de datos o
b) ponerlo en un grupo de archivos y marcarlo como de solo lectura, así es como:

USE [master]

GO

ALTER DATABASE [csvtosp] ADD FILEGROUP [READONLYTABLES]

GO

ALTER DATABASE [csvtosp] ADD FILE ( NAME = N'mydb_readonly_tables', FILENAME = N'G:\SQL2005DATA\mydb_readonly_tables.ndf' , SIZE = 3072KB , FILEGROWTH = 1024KB ) TO FILEGROUP [READONLYTABLES]

GO

USE csvtosp

GO

DROP TABLE mytable

CREATE TABLE mytable (

    somedata    char(8000) not null

) ON READONLYTABLES

GO

Para obtener más detalles sobre este tema, vaya aquí:

Cómo hacer una tabla de solo lectura en SQL Server