c# 应用程序连接到数据库 - 无法分离
c# application connected to the database - cannot detach
当我使用 C# 创建新数据库并创建 table 时,我可以关闭和打开与它的连接。如果我尝试在我的应用程序的同一会话中分离数据库,它告诉我我不能。
如果我重新启动应用程序,然后打开数据库,然后关闭并分离 - 它可以工作。
为什么会发生这种情况,我该如何解决?
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);
朋友您好,您正在使用:"Microsoft.SqlServer.Management.Smo;"?
if NO 然后用它来分离你的数据库
Server MyServer = new Server("your server name");
MyServer .DetachDatabase("name of database",true);
如果是请说明您的问题
您不能分离正在使用的数据库。
因此,如果您连接到要分离的同一个数据库,请先切换到数据库主服务器。
str = string.Format("use master GO EXEC sp_detach_db '{0}'", databaseName);
当我使用 C# 创建新数据库并创建 table 时,我可以关闭和打开与它的连接。如果我尝试在我的应用程序的同一会话中分离数据库,它告诉我我不能。 如果我重新启动应用程序,然后打开数据库,然后关闭并分离 - 它可以工作。 为什么会发生这种情况,我该如何解决?
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);
朋友您好,您正在使用:"Microsoft.SqlServer.Management.Smo;"?
if NO 然后用它来分离你的数据库
Server MyServer = new Server("your server name");
MyServer .DetachDatabase("name of database",true);
如果是请说明您的问题
您不能分离正在使用的数据库。
因此,如果您连接到要分离的同一个数据库,请先切换到数据库主服务器。
str = string.Format("use master GO EXEC sp_detach_db '{0}'", databaseName);