模拟SQL Server数据库关闭

时间:2010-08-26 10:27:36

标签: sql sql-server tsql

我编写了一个通过网络连接到系统的应用程序,并将事件从该系统记录到SQL Server数据库。

我需要在SQL Server出现故障时测试应用程序的行为。有没有办法在SQL Server系统上只杀死一个数据库而不影响其他数据库?

如果没有办法模拟SQL Server关闭。

应该没用,但应用程序是用Java编写的。

5 个答案:

答案 0 :(得分:5)

您可以使用T-SQL将sqlcmd用于set the database in single-user mode or detach the database。这将模拟以受控方式脱机的数据库,但不会模拟以不受控制的方式关闭的服务器,这可能更有用。

答案 1 :(得分:3)

扩展@ bzlm的回答:

USE master
GO
ALTER DATABASE YourDB SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO

答案 2 :(得分:2)

您可以使数据库脱机

ALTER DATABASE YourDatabase SET OFFLINE
GO

答案 3 :(得分:0)

除了其他答案之外:您甚至可能想要测试不同的故障模式。

其他答案模拟数据库关闭,而数据库运行的服务器保持运行状态。

例如,您可能还想模拟网络故障或服务器崩溃;这可以通过改变应用服务器上的网络设置,或者只是拉动它的(网络)插头来完成。

当然,这是否有意义取决于您的应用。

答案 4 :(得分:0)

我只是停止SQL Server服务。