无法访问同一服务器上的重复SQL Server数据库

时间:2010-09-26 13:13:47

标签: sql-server asp-classic dsn

我在Windows Server 2003 R2上使用SQL Server Workgroup Edition

我的经典ASP页面使用系统DSN访问我的生产数据库。都在这里工作。

像这样的代码......

<%
dbName= "ProdDB"  
userID = "PublicUser"  
pwd = "PublicUserPW"

Set objConn = Server.createObject("ADODB.Connection")  
objConn.connectionString = "DSN=MySystemDSN"  
objConn.open dbName, userID, pwd  
%>  

对于开发和测试,我通过

在Enterprise Manager中创建了一个ProdDB副本
  • 备份ProdDB
  • 从ProdDB备份集恢复到名为TestDB的新数据库

我的理解是,恢复的数据库将包含数据的精确副本以及用户,角色等。比较企业管理器中的两个数据库似乎支持这一假设。

所以...我假设我可以使用相同的凭据访问测试副本,只更改dbName,就像这样......

<%
dbName= "TestDB"  
userID = "PublicUser"  
pwd = "PublicUserPW"

Set objConn = Server.createObject("ADODB.Connection")  
objConn.connectionString = "DSN=MySystemDSN"  
objConn.open dbName, userID, pwd  
%>  

然而,现在我的页面返回

  

[Microsoft] [ODBC驱动程序管理器]数据   找不到源名称,也没有默认值   司机指定

我甚至尝试过创建一个新的系统DSN,默认数据库指向TestDB。仍然没有快乐。

我确信我做的事情简单而愚蠢。感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

open method的文档说它已声明:

connection.Open ConnectionString, UserID, Password, Options

所以看起来你正在传递TestDB作为连接字符串。我通常调用open而不指定任何参数。从connectionstrings dot com获取连接字符串,然后:

objConn.ConnectionString = "Data Source=localhost;Initial Catalog=testdb;" & _
    "User Id=myUsername;Password=myPassword;"
objConn.Open