我正在尝试在SQL Server 2008中重命名数据库。
我已经通过多种方式完成了这项工作,使用对象资源管理器,脚本,物理重命名文件,分离数据库并将其作为数据库附加回我想要的名称。
我想将我的数据库重命名为Counter
,所以当我说
Use Counter
GO
运行正常。
但是,从我的程序访问数据库而不是查看Counter
数据库并使用它,它会看到Counter
(counter_a
)的旧名称并抛出错误。反正有没有阻止这种情况发生并彻底根除这个旧名字?
我在使用
附加数据库和日志(这是旧名称)之后更改了文件名USE Counter
ALTER DATABASE Counter
MODIFY FILE (NAME = N'Counter_a', NEWNAME = N'Counter')
ALTER DATABASE Dpac
MODIFY FILE (NAME = N'Counter_a_log', NEWNAME = N'Counter_log')
现在物理名称是正确的。
但是在我的连接字符串中,如果我将数据库重命名为
中的counter_a
<DatabasePath value="Data Source=127.0.0.1;initial catalog=counter_a;Integrated Security = TRUE" />
我在SQL Server中将我的数据库重命名为counter_a
程序正常。
但是。如果我使用
<DatabasePath value="Data Source=127.0.0.1;initial catalog=counter;Integrated Security = TRUE" />
在配置中我将SAME数据库从counter_a
重命名为counter
我无法连接。
感谢您的帮助
答案 0 :(得分:0)
听起来与您连接的用户有一个旧数据库名称的默认数据库。您可以在SSMS中更改默认数据库,只需将其设置为新数据库名称或master。
另一种可能性是在应用程序的连接字符串中或在应用程序本身内引用旧名称。