Sql 重命名数据库,我做错了什么

Sql 重命名数据库,我做错了什么,sql,sql-server-2008,tsql,Sql,Sql Server 2008,Tsql,我正在尝试在SQL Server 2008中重命名数据库 我已经用了很多方法,使用对象资源管理器、脚本、物理重命名文件、分离数据库并用我想要的名称将其附加回数据库 我想将我的数据库重命名为计数器,所以当我说 Use Counter GO 这个很好 然而,从我访问数据库的程序中,它没有看到计数器数据库,而是看到了计数器(计数器a)的旧名称,并抛出了一个错误。有没有办法阻止这一切的发生,彻底根除这个古老的名字 在使用附加后,我更改了数据库和日志的文件名(旧名称) USE Counter ALT

我正在尝试在SQL Server 2008中重命名数据库

我已经用了很多方法,使用对象资源管理器、脚本、物理重命名文件、分离数据库并用我想要的名称将其附加回数据库

我想将我的数据库重命名为
计数器
,所以当我说

Use Counter
GO
这个很好

然而,从我访问数据库的程序中,它没有看到
计数器
数据库,而是看到了
计数器
计数器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')
现在物理名称是正确的

但是,在我的连接字符串中,如果我将数据库重命名为

<DatabasePath value="Data Source=127.0.0.1;initial catalog=counter_a;Integrated Security = TRUE" />
在配置中,我将同一数据库从
计数器a
重命名为
计数器
我无法连接


感谢您的帮助

听起来您连接的用户有一个旧数据库名的默认数据库。您可以在SSMS中更改默认数据库,只需将其设置为新数据库名称或主数据库


另一种可能是在应用程序的连接字符串中或在应用程序本身中存在对旧名称的引用。

哪个程序正在访问数据库?你能设置数据库吗?许多程序缓存数据库结构,因为它获取速度很慢。您可能需要清空缓存。请修复应用程序/程序代码以指向正确的数据库?那么您的应用程序如何知道要连接到哪个数据库?请尝试停止和启动SQL@rs.程序指向不必更改,因为另一个数据库已重命名为数据库程序指向用户的默认数据库为计数器,也在配置文件中。因此,它没有引用连接字符串中的旧名称
<DatabasePath value="Data Source=127.0.0.1;initial catalog=counter;Integrated Security = TRUE" />