我有我的c#应用程序,我想使用我的应用程序恢复数据库。我的sql代码是这样的:
alter database SSDPrototypeV3 set offline with rollback immediate
restore database SSDPrototypeV3
from disk = N'C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Backup\dustinepogi.bak'
alter database SSDPrototypeV3 set online
当我在我的应用程序上运行它时,它成功恢复了我的数据库。但是当我尝试运行一个sql查询(比如一个select语句)时,它说我有一个无效的对象名,特别是在我执行我的select语句的表上。但是,如果我在关闭后重新加载我的应用程序,它将完全恢复。我怎么能摆脱这个问题?
答案 0 :(得分:1)
假设您正在使用SqlClient
(并且您正在使用连接池):
SqlConnection.ClearAllPools
(清除提供程序的所有池)或ClearPool
(仅清除与特定连接字符串关联的池)而且,希望你走了
答案 1 :(得分:0)
数据库连接具有当前数据库,执行所有查询。连接字符串的初始数据库参数确定打开连接时使用的当前数据库。
我假设当您使master
数据库脱机时,当前数据库会更改回SSDPrototypeV3
。您有两种方法可以解决此问题:
use SSDPrototypeV3
或