特定のテーブルでの更新と挿入をブロックするが、削除は許可する単純な代替方法:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
注意:これにより INSERT と UPDATE は回避されますが、DELETE は許可されます。
テーブルを本当に読み取り専用にする必要がある場合は、次のいずれかを行うこともできます:
a) 独自のデータベースに配置するか、
b) ファイル グループに配置して読み取り専用としてマークします。方法は次のとおりです:
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
このテーマの詳細については、こちらをご覧ください: