sql >> Database >  >> RDS >> Sqlserver

Hoe maak je een tabel alleen-lezen in SQL Server?

Een eenvoudig alternatief dat update en invoegen op een specifieke tabel zou blokkeren, maar toch verwijderen toestaat:

ALTER TABLE mytable WITH NOCHECK ADD CONSTRAINT chk_read_only CHECK( 1 = 0 )

Let op:dit vermijdt INSERT's en UPDATE's, maar laat DELETE's toe.

Als je echt een tabel nodig hebt om echt alleen-lezen te zijn, kun je ook:

a) zet het in zijn eigen database of
b) zet het in een bestandsgroep en markeer dat alleen-lezen, hier is hoe:

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

Voor meer details over dit onderwerp, ga hier naar:

Een tabel alleen-lezen maken in SQL Server



  1. PostgreSQL - oneindige recursie gedetecteerd in beleid voor relatie

  2. Compressie inschakelen op een bestaande tabel in SQL Server (T-SQL)

  3. Hoe bouw ik een samenvatting door deel te nemen aan een enkele tabel met SQL Server?

  4. Wat is sneller, SELECT DISTINCT of GROUP BY in MySQL?