我正在使用 SMO 枚举 SQL Server 2005 实例的所有数据库,如下所示,它返回一个不存在的数据库(它过去存在)。
Using conn As SqlConnection = New SqlConnection(_connectionString)
conn.Open()
Dim smoConnection As New ServerConnection(conn)
Dim srv As Server = New Server(smoConnection)
For Each db As Database In srv.Databases
If db.Name.Contains("blablabla") Then
doStuffOnDatabase(db)
End If
Next
smoConnection.Disconnect()
End Using
在同一台服务器上,运行
exec sp_databases();
返回正确的数据库列表。我不明白为什么 SMO 没有给我与 sp_databases() 相同的列表。
上面的代码在客户机器上正常工作。我只在运行 Windows Vista 的两台同事笔记本电脑上看到它失败了。
为什么 SMO 返回一个不再存在的旧数据库?
程序集版本都是 9.0.242.0