当我使用C#创建新数据库并创建表时,我可以关闭并打开它的连接。如果我尝试在我的应用程序的同一会话中分离数据库,它告诉我,我不能。 如果我重新启动应用程序,然后打开数据库,然后关闭并分离 - 它可以工作。 为什么会发生这种情况,我该如何解决?
P.S。我尝试使用SET OFFLINE WITH ROLLBACK IMMEDIATE,但是可以更改我的数据库权限,而且我真的不想要这个。
我的连接字符串:
myConn.ConnectionString = String.Format("Server={0};Integrated security=SSPI;", serverName);
我的分离字符串:
str = string.Format("EXEC sp_detach_db '{0}'", databaseName);
答案 0 :(得分:1)
您好朋友在使用:" Microsoft.SqlServer.Management.Smo;" ?
如果否,则使用它来分离数据库
Server MyServer = new Server("your server name");
MyServer .DetachDatabase("name of database",true);
如果是,请指明您的问题
答案 1 :(得分:0)
您无法分离正在使用的数据库 因此,如果您连接到要分离的同一数据库,则首先切换到数据库主数据库。
str = string.Format("use master GO EXEC sp_detach_db '{0}'", databaseName);