Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL,临时设置表为只读_Sql_Sql Server - Fatal编程技术网

SQL,临时设置表为只读

SQL,临时设置表为只读,sql,sql-server,Sql,Sql Server,可能重复: 我正在修改一个在表中进行修改的过程(我们称之为base.dbo.important) 我阅读代码是为了消除修改此表时的所有查询 是否有办法在过程中使该表成为只读,以便任何修改尝试都会引发异常 我正在使用SQLServer,在SQLServer中,您可以拒绝应用程序用户在任何级别(数据库、过程、表列…您可以指定!) 您还可以仅拒绝该过程的权限 在SQLServer中,您可以在任何级别拒绝应用程序用户的写访问权限(数据库、过程、表列…由您命名!) 您还可以仅拒绝该过程的权限

可能重复:

我正在修改一个在表中进行修改的过程(我们称之为base.dbo.important)

我阅读代码是为了消除修改此表时的所有查询

是否有办法在过程中使该表成为只读,以便任何修改尝试都会引发异常


我正在使用SQLServer,在SQLServer中,您可以拒绝应用程序用户在任何级别(数据库、过程、表列…您可以指定!)

您还可以仅拒绝该过程的权限


在SQLServer中,您可以在任何级别拒绝应用程序用户的写访问权限(数据库、过程、表列…由您命名!)

您还可以仅拒绝该过程的权限


一种解决方案是将事务隔离级别设置为可序列化,然后从事务内的表中选择。因此,类似于:

Set Transaction Isolation Level Serializable;

Begin Tran;

Select *
From MyTable

/* Do more work */

Commit Tran;

一种解决方案是将事务隔离级别设置为serializable,然后从事务内的表中进行选择。因此,类似于:

Set Transaction Isolation Level Serializable;

Begin Tran;

Select *
From MyTable

/* Do more work */

Commit Tran;

如果我理解正确,OP想要阻止一个表,而不是整个数据库是的,你可以设置对过程、表、列等的权限。如果我理解正确,OP想要阻止一个表,而不是整个数据库是的,你可以设置对过程、表、列等的权限。1一个简单的谷歌搜索“SQLServer使表只读”让我回到了原来的状态。我敢肯定,当他/她撰写问题时,它似乎起作用了。我正在寻找只适用于该程序的东西。我看到了previos的问题1一个简单的谷歌搜索“SQLServer使表格只读”让我回到了原来的状态。我敢肯定,当他/她撰写问题时,它似乎起作用了。我正在寻找只适用于该程序的东西。我看到了普雷维奥斯的问题;我想这更能描述我需要的东西。@Argento-Um。您正在从事务中删除mytemp。我假设您不想让表对自己是只读的,而是在事务外部进行查询。;我想这更能描述我需要的东西。@Argento-Um。您正在从事务中删除mytemp。我假设您不想让表对自己是只读的,而是在事务外部进行查询。