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

问题描述:

我试图在SQL Server计算机上执行模式文件。我目前同时安装了SQL Server 2005和SQL Server 2008。当我尝试执行.sql文件(意味着在2008版本上执行)时,出现以下错误。SQL Server 2005和SQL Server 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); 
+0

您使用什么工具,实用程序或应用程序“执行.sql文件”? (SQLDMO暗示我使用的是命令窗口,但似乎不太可能) – 2011-03-25 20:43:44

从来没有试图从ASP.NET进程中运行SMO的东西,但你可以直接加载文件,分割为“GO”,然后将其作为一系列SQL命令运行,而不用大惊小怪。这应该不关心sql版本的问题,除非有某种SQL语句是特定于版本的。

+0

我想过尝试这个方法,但它好像是一种被黑方法,我很担心注释和IF语句。 – mrK 2011-03-25 20:56:16

+0

IFs - 就像IF EXISTS的东西一样正常工作。或者至少我已经在很多SSMS生成的脚本上使用了它。 – 2011-03-25 21:15:35

+0

感谢您的帮助。我会让你知道它是怎么回事。 – mrK 2011-03-27 17:51:24

根据您收到的错误消息,听起来非常像您以某种方式使用/访问SQL 2005实用程序。 “10.0版本”是SQL 2008(与工程营销相比,工程技术说话)。你确定你正在访问正确的DLL吗?

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

+0

同上,用于验证您是否引用了正确的SQL SMO dll。 2005年和2008年使用不相容的不同SMO。 – ulty4life 2011-03-25 23:26:21

+0

我的问题的一个奇怪的事情是,我有一台笔记本电脑上运行的应用程序只有2008年安装,它工作正常。但是,当我将它加载到服务器(使用相同的DLL)时,它会中断。我试过重新复制dll,并没有改变任何东西。 – mrK 2011-03-27 18:13:10