Имейте в виду, что независимо от сценария причина всегда одинакова в .NET:
Вы пытаетесь использовать ссылочную переменную, значение которой
Nothing
/null
. Если для ссылочной переменной значениеNothing
/null
, это означает, что на самом деле оно не содержит ссылку на экземпляр любого объекта, который существует в куче.Вы либо никогда не присваивали какую-либо переменную, никогда не создавали экземпляр значения, присвоенного переменной, или вы вручную устанавливали переменную, равную
blockquote>Nothing
/null
, или вы вызывали функцию, которая установите для этой переменной значениеNothing
/null
.
Нет, невозможно понизить базу данных. 10.50.1600 - это версия SQL Server 2008 R2. Абсолютно невозможно восстановить или прикрепить эту базу данных к экземпляру SQL Server 2008, который вы пытаетесь восстановить (10.00.1600 - это SQL Server 2008). Ваши единственные варианты:
вы можете использовать BCP для небольших таблиц.
Команда BCP OUT: -
BCP "SELECT * FROM [Dinesh].[dbo].[Invoices]" QUERYOUT C:\av\Invoices1.txt -S MC0XENTC -T -c -r c:\error.csv
Команда BCP IN: - Создать структуру таблицы для Invoicescopy1.
BCP [Dinesh].[dbo].[Invoicescopy1] IN C:\av\Invoices.txt -S MC0XENTC -T -c
Вы можете попробовать это.
Вот мои 2 цента на разные варианты для этого:
Инструменты сторонних разработчиков. Вероятно, самый простой способ выполнить эту работу - создать пустую базу данных на более низкой версии, а затем использовать сторонние инструменты читать резервную копию и синхронизировать новую созданную базу данных с резервной копией.
Красные ворота являются одними из самых популярных, но есть много других, таких как ApexSQL Diff , ApexSQL Data Diff , Адепт SQL , Идера .... Все это - превосходные инструменты, но вы можете выполнить задание в пробном режиме;)
Создание скриптов: как уже упоминалось, вы всегда можете создавать структуру и данные сценария с помощью SSMS, но вам нужно учитывать порядок исполнения. По умолчанию объектные скрипты не упорядочены правильно, и вам придется позаботиться о зависимостях. Это может быть проблемой, если база данных большая и имеет много объектов.
Мастер импорта и экспорта: это не идеальное решение, поскольку оно не будет восстанавливать все объекты, а только таблицы данных, но вы можете это рассмотреть для быстрых и грязных исправлений, когда это необходимо.
Task-> Generate Scripts ... in Advanced в разделе «Типы данных для скрипта» выберите «Shema and data» и попробуйте запустить этот скрипт в своей нижней версии
Это некрасиво, но именно так я дал вам эту опцию, установленную на вашей установке SQL 2008 R2.
1) Щелкните правой кнопкой мыши базу данных в SQL Server 2008 R2 «Задачи» .. «Сгенерировать скрипты» в мастере, сначала выберите всю базу данных и объекты. На шаге «Установить параметры сценариев» вы должны увидеть кнопку «Дополнительно», выберите это и убедитесь, что вы выбрали вариант «Script for Server Version» = SQL Server 2008 «не R2». Это важный шаг, поскольку «импорт данных» сам по себе не включает в себя все первичные ключи, констрианты и любые другие объекты, такие как хранимые процедуры ».
2) Запустите SQL-скрипт, сгенерированный на новом экземпляре установки или базы данных SQL Express или SQL Server 2008, используя окно запроса или откройте сохраненный скрипт .sql и выполните, и вы увидите новую базу данных.
3) Теперь щелкните правой кнопкой мыши на новой базе данных и выберите «Задачи» .. «Импорт данных ..» выберите источник как базу данных R2 и пункт назначения в качестве новой базы данных. «Скопируйте данные из одной или нескольких таблиц или представлений», установите верхний флажок, чтобы выбрать все таблицы, а затем следующий шаг, запустите пакет, и вы должны иметь все в старой версии. Это должно работать и для возврата к версии 2005 года. Надеюсь, это поможет кому-то.
Вы не можете восстановить базу данных (или прикрепить), созданную в верхней версии, в более низкую версию.
выберите «Схема и данные» - , если вы хотите взять обе вещи в файл сценария резервного копирования , выберите «Только схема» - , если нужна только схема.
blockquote>Да, теперь вы сделали с помощью Create Script с помощью схемы и данных базы данных.
Другой способ сделать это - использовать функцию «Копировать базу данных»:
Найти, щелкнув правой кнопкой мыши исходную базу данных> «Задачи»> «Копировать базу данных».
Вы можете скопировать базу данных в более низкую версию экземпляра SQL Server. Это работало для меня с SQL Server 2008 R2 (SP1) - 10.50.2789.0 до Microsoft SQL Server 2008 (SP2) - 10.0.3798.0
Не обязательно работать
Будет работать
sqlncli.msi
/ sqlncli_x64.msi
/ sqlncli_ia64.msi
, SQLServer2005_XMO.msi
/ SQLServer2005_XMO_x64.msi
/ SQLServer2005_XMO_ia64.msi
(скачать здесь ). Я понимаю, что это старый пост, но людям может быть полезно знать, что мастер миграции Azure (доступный на Codeplex - не может ссылаться на то, что Codeplex в данный момент я набираю это) будет делать это легко.
Вы можете использовать функциональность, называемую Export Data-Tier Application, которая генерирует файл .bacpac
, содержащий схему и данные базы данных.
На целевом сервере вы можете использовать параметр «Импортировать данные-уровень», который создает и заполняет новые база данных из предварительно созданного файла .bacpac
Если вы хотите просто передать схему базы данных, вы можете использовать Extract Data-Tier Application для создания файла и Deploy Application-Tier Application для развертывания созданной схемы базы данных.
Я пробовал этот процесс в разных версиях SQL Server с SQL 2014 на SQL 2012 и с SQL 2014 на SQL 2008R2 и работал хорошо.