如何在数据库为只读时插入,更新数据行



我有一个sql server数据库,可以使用WPF应用程序。用户每秒插入数千个数据。

我的客户端希望将数据库更新为只读数据库。但我对此有些担忧。

如果我以只读方式更新数据库,是阻止从应用程序插入还是更新数据?

只读表示只读。当数据库处于只读模式时,您只能从中读取数据,而不能进行任何更改。

要回答您的问题,要在只读数据库中插入或更新数据,您需要先将其置于读写模式:

ALTER DATABASE [TESTDB] SET READ_WRITE WITH NO_WAIT
GO

虽然希望数据库处于只读模式并不罕见,但如果您定期进行更改,则完全违背了这一点。dba.stackexchange 上的这个问题有一些答案,如果你只是想在定义的维护时段内进行小的更改。

将数据库设置为只读意味着用户可以从数据库中读取数据,但不能修改数据。

如果您需要read only数据库但同时需要修改数据,您可以做的是将表划分为不同的文件组。

这是一个非常复杂的解决方案,但拥有不同的文件组可以允许拥有read-only表和可以修改的表。此外,对于只读文件组,可以应用压缩,从而减小整个组的大小。

有关设置和拥有read-only文件组的要求的详细信息,请参阅此处和此处。

不可能,只读意味着只读:没有输入,没有更新。

但是,您可以复制表的内容并在此侧临时表中更新,并尝试定期无缝集成到主表中(当主表上的 io-load 较低或服务停机时间时......

最新更新