Jednoduchá alternativa, která by blokovala aktualizaci a vkládání na konkrétní tabulku, ale stále umožňovala mazání:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
Buďte si vědomi:tím se vyhnete Vkládání a AKTUALIZACÍ, ale umožňuje DELETE.
Pokud opravdu potřebujete, aby tabulka byla skutečně pouze pro čtení, můžete také:
a) vložte jej do vlastní databáze nebo
b) vložte do skupiny souborů a označte, že pouze pro čtení, postupujte takto:
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
Další podrobnosti o tomto tématu naleznete zde:
Jak vytvořit tabulku pouze pro čtení v SQL Server