Una semplice alternativa che bloccherebbe l'aggiornamento e l'inserimento su una tabella specifica ma consentirà comunque l'eliminazione:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
Attenzione:questo evita INSERT e UPDATE, ma consente DELETE.
Se hai davvero bisogno di una tabella per essere veramente di sola lettura, potresti anche:
a) inserirlo nel proprio database oppure
b) inserirlo in un filegroup e contrassegnarlo di sola lettura, ecco come:
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
Per maggiori dettagli su questo argomento, vai qui:
Come creare una tabella di sola lettura in SQL Server