我正在为我的Web应用程序使用SQL Server。我如何知道一个插入查询失败,因为如果你想找到你的内存使用情况数据库服务器磁盘内存已满
exec sp_spaceused
这会给你你有多少内存用于特定数据库的数据库服务器的内存磁盘已满
我正在为我的Web应用程序使用SQL Server。我如何知道一个插入查询失败,因为如果你想找到你的内存使用情况数据库服务器磁盘内存已满
exec sp_spaceused
这会给你你有多少内存用于特定数据库的数据库服务器的内存磁盘已满
您可以通过禁用数据库上的自动增长功能(它是文件选项卡上的数据库属性中的复选框)并填充数据库来模拟此功能。错误将是相同的。
ALTER DATABASE YourDatabase
MODIFY FILE (name='YourFile' MAXSIZE=50MB);
错误代码,你会回来将指示磁盘已满:1105(主文件组已满)或9902(日志文件已满)
检查从SQL Server返回错误代码当您尝试插入到数据库中。
有了这个错误,你可以决定怎么做。 (例如,尝试再次插入, 尝试释放服务器上的某些内存)另外,如果您尚未安装,请将Insert语句放入事务中,以便在出现错误时进行回滚。
其实我正在找一种方法来模拟拥有一个完整磁盘的场景。当我找到一种方法,我希望我可以测试它通过它会抛出异常,如果有任何 – cedric 2009-09-11 07:54:03
我想你可以相信,如果磁盘已满,SQL服务器将返回错误代码:)。
您可以让您的测试代码认为它正在与SQL服务器通信,但它会与您的一些假对象进行通话,这些对象将用您要测试的错误代码进行响应。
有框架可以帮助你。其中之一是Rhino Mocks,你可以从http://ayende.com下载
你打算如何知道磁盘已满? – 2009-09-11 07:33:24
有没有一种方法可以模拟在Visual Studio中拥有完整硬盘的想法,而不必实际或物理地让硬盘满了? :)我正在做一个单元测试,然后我想在测试中包含该场景。 – cedric 2009-09-11 07:52:11