Một giải pháp thay thế đơn giản có thể chặn cập nhật và chèn trên một bảng cụ thể nhưng vẫn cho phép xóa:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
Lưu ý:điều này tránh CHÈN và CẬP NHẬT, nhưng cho phép XÓA.
Nếu bạn thực sự cần một bảng chỉ thực sự được đọc, bạn cũng có thể:
a) đặt nó vào cơ sở dữ liệu của riêng nó hoặc
b) đặt nó vào một nhóm tệp và đánh dấu là chỉ đọc, đây là cách thực hiện:
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
Để biết thêm chi tiết về chủ đề này, hãy truy cập tại đây:
Cách tạo bảng Chỉ đọc trong SQL Server