Prosta alternatywa, która blokuje aktualizację i wstawianie w określonej tabeli, ale nadal umożliwia usunięcie:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
Pamiętaj:pozwala to uniknąć WSTAWIANIA i AKTUALIZACJI, ale umożliwia USUWANIE.
Jeśli naprawdę potrzebujesz tabeli, aby była naprawdę tylko do czytania, możesz również:
a) umieść go we własnej bazie danych lub
b) umieść go w grupie plików i oznacz jako tylko do odczytu, oto jak:
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
Więcej informacji na ten temat znajdziesz tutaj:
Jak ustawić tabelę tylko do odczytu w SQL Server