Проблемы совместимости для SQL Server 2005 и SQL Server 2008 - PullRequest
0 голосов
/ 25 марта 2011

Я пытаюсь выполнить файл схемы на компьютере с 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? *

РЕДАКТИРОВАТЬ

Я запускаю файл .sql из приложения ASP.Net и использую 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 ]

3 голосов
/ 26 марта 2011

Судя по полученному вами сообщению об ошибке, очень похоже, что вы каким-то образом используете / получаете доступ к утилитам SQL 2005.«Версия 10.0» - это SQL 2008 (в инженерном плане, а не в маркетинге).Вы уверены, что получаете доступ к нужной DLL?

Давным-давно, я столкнулся с чем-то, возможно, похожим.У нас были SQL 7.0 и 2000 на одной коробке (я сказал это было давно), и мы вызывали какую-то утилиту через командный файл, окно команд, что-то вроде этого, и мы могли получить только старую / несовместимую версиюутилиты для запуска.Несколько дней спустя кто-то [Привет, Грег!] Подумал посмотреть на настройку PATH среды DOS, и вот, из-за порядка, в котором перечислены папки, ОС найдет старую версию перед новой.Может ли что-то подобное запутать вас сейчас?

1 голос
/ 25 марта 2011

Никогда не пытался запускать SMO-вещи из процесса ASP.NET, но вы, вероятно, можете просто загрузить файл, разделить его на «GO» и запустить его как серию команд SQL без лишней суеты. Это не должно волновать проблемы с SQL-версией, если только нет некоторого оператора SQL, который каким-то образом зависит от версии.

...