SQL Server 2005和SQL Server 2008的兼容性问题

时间:2011-03-25 20:39:28

标签: asp.net sql-server-2005 sql-server-2008 smo

我正在尝试在SQL Server计算机上执行模式文件。我目前安装了SQL Server 2005和SQL Server 2008。当我尝试执行.sql文件(意味着在2008版本上执行)时,我收到以下错误。

Microsoft.SqlServer.Management.Common.ConnectionFailureException: 
Failed to connect to server . --->    
Microsoft.SqlServer.Management.Common.ConnectionFailureException: This SQL Server
version (10.0) is not supported

有没有办法指定Microsoft.SqlServer.Management.Smo.dll在执行程序时看到的版本或除卸载2005版本之外的其他一些解决方法?

编辑

我正在从ASP.Net应用程序运行.sql文件并使用Microsoft.SqlServer.SMO dll

ServerConnection conn = new ServerConnection(new System.Data.SqlClient.SqlConnection(connString),);
Server srv = new Server(conn);

// execute sql file
srv.ConnectionContext.StatementTimeout = 300000;
srv.Databases[conn.DatabaseName].ExecuteNonQuery(schema);

2 个答案:

答案 0 :(得分:3)

根据您收到的错误消息,听起来非常像您以某种方式使用/访问SQL 2005实用程序。 “版本10.0”是SQL 2008(在工程方面,而不是市场营销)。你确定你正在访问正确的dll吗?

很久很久以前,我碰到了类似的东西。我们在一个盒子上有SQL 7.0和2000(我很久以前就)我们通过批处理文件,命令窗口调用了一些实用程序,类似的东西,我们只能得到旧的/不兼容的要运行的实用程序的版本。几天之后,有人[Hi Greg!]想要查看DOS环境PATH设置,并且看,由于文件夹列出的顺序,操作系统会在新版本之前找到旧版本。这样的事情可能会让你绊倒吗?

答案 1 :(得分:1)

从未尝试从ASP.NET进程运行SMO内容,但您可以只加载文件,拆分为“GO”并将其作为一系列SQL命令运行而不必过于大惊小怪。这应该不关心sql版本问题,除非有一些SQL语句以某种方式特定于版本。