Ett enkelt alternativ som skulle blockera uppdatering och infoga på en specifik tabell men ändå tillåta radering:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
Var medveten om:detta undviker INSERT och UPPDATERINGAR, men tillåter DELETEs.
Om du verkligen behöver en tabell för att verkligen vara läsbar kan du också antingen:
a) placera den i sin egen databas eller
b) placera den i en filgrupp och markera den som skrivskyddad, så här:
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
För mer information om detta ämne, gå hit:
Hur man gör en tabell skrivskyddad i SQL Server