【问题标题】:SQL, Temporary make a table read only [duplicate]SQL,临时使表只读[重复]
【发布时间】:2011-10-07 00:44:21
【问题描述】:

可能重复:
How to make a table Read Only in SQL Server?

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

我正在阅读代码以消除修改此表的所有查询。

有没有办法在过程中将该表设为只读,以便任何修改尝试都会引发异常?

我正在使用 sql-server

【问题讨论】:

  • -1 一个简单的谷歌搜索“sql server make a table read only”让我回到了 SO。我敢肯定,当他/她撰写问题时,他/她会看到它。
  • 我正在寻找仅适用于该程序的东西。我看到了前面的问题

标签: sql sql-server


【解决方案1】:

【讨论】:

  • 我正在寻找仅适用于该程序的东西
  • 如果我理解正确,OP 想要阻止一个表,而不是整个数据库
  • 是的,您可以设置过程、表、列等的权限。
【解决方案2】:

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

Set Transaction Isolation Level Serializable;

Begin Tran;

Select *
From MyTable

/* Do more work */

Commit Tran;

【讨论】:

  • pastee.org/m3wga;我认为这更好地描述了我的需求。
  • @Argento - 嗯。您正在从交易中的 mytemp 中删除。我假设您不是试图使表对自己只读,而是在您的事务外部进行查询。
猜你喜欢
  • 2011-11-04
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-06
  • 2022-01-01
  • 1970-01-01
相关资源
最近更新 更多