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