Jey*_*vel 22 sql sql-server sql-server-2005
我正在更新该表中的一些记录集,之后我需要将此表只读.
那么如何在SQL Server中创建一个只读表?
Len*_*rri 34
一个简单的替代方法,可阻止更新并插入特定表但仍允许删除:
ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )
Run Code Online (Sandbox Code Playgroud)
请注意:这可以避免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
Run Code Online (Sandbox Code Playgroud)
有关此主题的更多详细信息,请访问:
3号可能是最好的做法.例如,如果您的连接是db_owner,那么触发器可以被禁用触发器或者将表移动到另一个文件组.
| 归档时间: |
|
| 查看次数: |
28385 次 |
| 最近记录: |