Обновление до SQL Server 2008: обновление программы VS2005 .NET, использующей BCP - PullRequest
1 голос
/ 24 сентября 2011

У меня есть программа VS2005 .NET C #.Насколько я понимаю, VS2005 предназначался только для версии 2.0 .NET FW.Программа использует объект массового копирования.Я полагаю, что исходной dll этого объекта является файл System.Data.dll в системной папке Framework версии 2.

Я предполагаю, что System.Data.dll должен вызывать версию SQL Server 2005 изBCP.exe при использовании объекта BulkCopy.В настоящее время на нашем сервере баз данных есть версии BCP.exe 2005 и 2008 годов.Вскоре версия 2005 будет удалена, и я должен убедиться, что моя программа .NET продолжит работать.

Я думаю, что использовать VS2008 для обновления приложения до версии 3.5 платформы Framework, которую я проверилнаходится на сервере БД.На самом деле, я вижу, что есть все версии FW, включая 1,1,2.0,3.5 и 4.0.Я думаю, что при обновлении до 3.5 FW будет использоваться версия BCP.exe 2008 года.

Как узнать, какую версию массового копирования (BCP.exe) я использую вЧтобы программа продолжала работать, когда на нашем БД-сервере остается только BCP.exe 2008?enter image description here

Ответы [ 3 ]

2 голосов
/ 24 сентября 2011

Если вы говорите о классе SqlBulkCopy, то он вообще не использует bcp.exe.Таким образом, ваше приложение будет работать должным образом после обновления.

PS Нет связи между версией Framework и версией SQL Server.

1 голос
/ 02 октября 2011

Из документов MSDN для SqlBulkCopy:

Microsoft SQL Server включает в себя популярную утилиту командной строки с именем bcp для перемещения данных из одной таблицы в другую, будь то на одном сервере или между серверами. Класс SqlBulkCopy позволяет писать решения с управляемым кодом, которые предоставляют аналогичные функции.

Другими словами, bcp.exe не имеет отношения к вашей проблеме.

Пространство имен System.Data.SqlClient, включенное в более новые версии .NET Framework, обычно работает с более старыми версиями SQL Server; Я еще не видел ни одного места в документах MSDN, где они не могли вызвать проблемы обратной совместимости SQL Server. Ваша самая безопасная ставка - просто перестроить для .NET 3.5 или 4.0, как вы сказали, чтобы он взял последний код System.Data.SqlClient (который обрабатывает совместимость для вас).

Если вам интересно, что он делает, вы можете запустить Sql Server Profiler во время работы вашего приложения и посмотреть, какой SQL на самом деле генерируется SqlBulkCopy. Вы должны увидеть относительно простой SQL, совместимый с проверкой 2008 года.

0 голосов
/ 01 октября 2011
  • Если ваше приложение работает на другом сервере / ПК, на котором не установлены какие-либо компоненты SQL Server , оно все равно будет работать (при условии, что у вас есть .net framework)
  • Класс SqlBulkCopy не вызывает bcp.exe.Это абсолютно не связано
  • Неважно, какая версия bcp.exe может или не может быть установлена ​​
  • Использование SQLBulkCopy вашим приложением не зависит от версии SQL Server
...