sql >> データベース >  >> RDS >> Sqlserver

SQL Serverでテーブルを読み取り専用にする方法は?

    特定のテーブルでの更新と挿入をブロックするが、削除は許可する単純な代替方法:

    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
    

    このテーマの詳細については、こちらをご覧ください:

    SQL Server でテーブルを読み取り専用にする方法



    1. Oracle SQLクエリを使用して、列のカンマ区切り値を行に分割します

    2. 実行時間の長いOracleDBクエリのシミュレーション

    3. Cx-Freeze:Showwarning AttributeError:'NoneType'オブジェクトに属性がありません'write'

    4. ~~Postgresの演算子