Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment rendre une table en lecture seule dans SQL Server ?

Une alternative simple qui bloquerait la mise à jour et l'insertion sur une table spécifique tout en permettant la suppression :

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

Attention :cela évite les INSERT et les UPDATE, mais autorise les DELETE.

Si vous avez vraiment besoin qu'une table soit réellement en lecture seule, vous pouvez également :

a) placez-le dans sa propre base de données ou
b) placez-le dans un groupe de fichiers et marquez-le en lecture seule, voici comment :

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

Pour plus de détails à ce sujet, rendez-vous ici :

Comment créer une table en lecture seule dans SQL Server