Een eenvoudig alternatief dat update en invoegen op een specifieke tabel zou blokkeren, maar toch verwijderen toestaat:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
Let op:dit vermijdt INSERT's en UPDATE's, maar laat DELETE's toe.
Als je echt een tabel nodig hebt om echt alleen-lezen te zijn, kun je ook:
a) zet het in zijn eigen database of
b) zet het in een bestandsgroep en markeer dat alleen-lezen, hier is hoe:
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
Voor meer details over dit onderwerp, ga hier naar:
Een tabel alleen-lezen maken in SQL Server