Тип источника 200 в Мастер импорта и экспорта SQL Server?

Я пытаюсь импортировать данные из одной базы данных на сервере в новую таблицу на другом сервере, используя мастер импорта и экспорта SQL Server. (SQL Server Management Studio 2012)

В мастере я проверил «Напишите запрос, чтобы указать данные для передачи», а оператор SQL возвращает данные, содержащие следующие четыре столбца:

+-----------------------------------------------------------------------------+ | ID(varchar(100)) | Title(text) | Description(text) | IsActive(tinyint)| +-----------------------------------------------------------------------------+ 

Я хочу изменить типы для новой таблицы, чтобы

 +----------------------------------------------------------------------------------------+ | ID(varchar(4)) | Title(varchar(200)) | Description(varchar(2000)) | IsActive(bit)| +----------------------------------------------------------------------------------------+ 

Итак, на странице «Сопоставление столбцов» (на странице « Выбор исходных таблиц и представлений » я нажал « Редактировать сопоставление …»), я изменил тип адресата на вышеуказанные типы. Затем, после нажатия «Далее», на странице «Просмотр данных о Found 3 unknown column type conversion(s). You are only allowed to save the package данных» появляется сообщение об ошибке « Found 3 unknown column type conversion(s). You are only allowed to save the package "

Отображение типа данных показывает следующую информацию:

 icon Source Column Source Type Destination Column Destination Type Convert ---------------------------------------------------------------------------------- error ID 200 ID varchar error Title 200 Title varchar error Description 201 Description varchar warning IsActive tinyint IsActive bit 

Даже если я не изменяю тип данных на странице « Редактировать сопоставление … », я получаю ту же ошибку.

Я не понимаю, что означает «200» в контексте типа данных, и как я могу импортировать эти данные в новую таблицу на другом сервере?

Я ценю любую помощь.

Я уверен, что текстовые столбцы не могут быть вставлены в столбцы varchar с помощью мастера. В зависимости от того, насколько велика таблица, вы можете экспортировать источник в csv через SSMS, а затем импортировать его. Это должно работать, но если у вас есть несколько таблиц для импорта, вы можете добавить связанный сервер. Затем вы можете просто квалифицировать старую таблицу или новую таблицу следующим образом:

 insert into [new_server].database.dbo.tablename select * from old_table 

Я знаю, что SQL2000 – это боль для создания связанных серверов, хотя это то, что я предполагаю, что вы пытаетесь экспортировать, поскольку у вас есть текстовые столбцы.

С небольшим количеством экспериментов эта ошибка возникает только тогда, когда у вас есть запрос в качестве источника. Принятый ответ не работал для меня, так как копирование в плоский файл приведет к той же ошибке.

Чтобы решить эту проблему, я поместил свой запрос в View затем выбрал Copy From one or more Tables Or Views вместо Write a query...

После этого я прошел через мастер, и мои данные прошли без ошибок

К сожалению, это BUG. Смотрите (и проголосуйте) ссылки ниже:

-> Мастер импорта и экспорта SQL Server не распознает Varchar и NVarchar

а также

-> DTSWizard в SQL 2012 SP1 больше не распознает типы данных nvarchar / varchar, когда источником является запрос

Долгосрочное решение (помимо того, что Microsoft исправляет его) (или у них уже есть?) Также является несколькими ссылками, глубоко связанными с ответами.

На зараженном компьютере существует XML-файл, который определяет преобразование кода в значение для каждого типа преобразования.
То, что видно с «200» и «201», вызывающее сбой, является отсутствующим сопоставлением
…. ну, он не должен был проходить как «200/201», но, как и было, мы хотели бы, чтобы он был сопоставлен

Его можно вставить вручную, если вы хотите играть с такими конфигурациями.

Вот где я получил ответ, достаточно пути вниз по странице: http://social.msdn.microsoft.com/Forums/sqlserver/en-US/97ff1f01-c02a-4c9a-b867-8eaecc464cfb/2012-sp1-no -longer признает-синфазные типы данных? Форум = sqlintegrationservices

Файлы сопоставления находятся в C: \ Program Files (x86) \ Microsoft SQL Server \ 110 \ DTS \ MappingFiles \
(или эквивалент)

Существует один для каждого типа преобразования источника в пункт назначения.

Для перехода между SQL-серверами посмотрите на такие, как
MSSQLToSSIS10.XML
MSSql9ToMSSql8.xml
MSSql10ToMSSql9.xml

Где вы видите

 <!-- varchar --> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>varchar</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_STR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping> 

Добавьте сопоставление «200», чтобы оно соответствовало

 <!-- varchar --> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>varchar</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_STR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping> <dtm:DataTypeMapping > <dtm:SourceDataType> <dtm:DataTypeName>200</dtm:DataTypeName> </dtm:SourceDataType> <dtm:DestinationDataType> <dtm:CharacterStringType> <dtm:DataTypeName>DT_STR</dtm:DataTypeName> <dtm:UseSourceLength/> </dtm:CharacterStringType> </dtm:DestinationDataType> </dtm:DataTypeMapping> 

Исправьте nvarchar и любые другие так же!

Я смог обойти это, поместив поля символов в качестве char (##) в SQL и затем изменив типы данных назначения на varchar (##). Поля, возможно, нуждаются в обрезке перед использованием, но импорт работает.

Это ошибка, и она была исправлена ​​только в SQL Server 2000 SP2 .

Вам действительно не нужно возиться с конфигурацией, представлениями или чем-то еще. Просто сохраните пакет SSIS и выполните его, дважды щелкнув его в проводнике. Это запустит утилиту «Execute Package Utility» (DTExecUI.exe в папке ManagementStudio), которая должна запускать пакет без ошибок.

Самое быстрое решение – экспортировать данные в новую таблицу в той же базе данных (источник), используя мастер импорта / экспорта. Затем экспортируйте данные из новой таблицы. Как-то мастер импорта / экспорта работает с магией (на самом деле) в то время, когда он создает новую таблицу. Спасибо Jyoti за прекращение боли, которую он должен был использовать мастер импорта / экспорта.

  • TSQL - лучшая функция преобразования INT
  • Ошибки SQL-сервера при преобразовании null в datetime
  • SQL Query - невозможно преобразовать varchar в float после массовой вставки
  • Как преобразовать строку в формате «свойство: значение, свойство2: значение» в xml в SQL Server 2008
  • System.Data.SqlClient.SqlException: преобразование не удалось при преобразовании даты и времени из символьной строки в зависимости от языка ОС
  • Преобразование даты и времени из подстроки T-SQL
  • Преобразование дат SQL в разные форматы
  • C # boolean нуждается в преобразовании в бит для SQL Server, поэтому вместо True оно должно быть 1
  • Преобразование INT в BIGINT в SQL Server
  • CAST дефис (-) до десятичного
  • Как проверить, находится ли текущее время в SQL два раза?
  • Interesting Posts

    LINQ Выберите последнюю и уникальную запись из БД с помощью списка

    получить список всех триггеров, функций и хранимых процедур

    Разрешение Sql-сервера для пользователя только для чтения для предотвращения блокировок

    Муфты Entity Framework

    Программный вывод столбцов MS SQL View, включая псевдоним в .net / C #?

    Как Ef генерирует Tsql

    Я хочу, чтобы моя база данных (SQL) уведомляла или нажимала обновления для клиентского приложения

    TSQL two Выберите команду для вывода одной таблицы

    как я могу использовать регистр case после использования левого соединения?

    Как повернуть эту таблицу

    Можно ли добавить столбец идентификатора первичного ключа, чтобы решить проблемы взаимоблокировки?

    Как использовать ключевое слово sql reserve в имени столбца

    Ошибка SQL-Server Не удалось найти метод «STContains»

    Entity Framework и группа SQL Server Compact Edition по ошибке DefaultIfEmpty

    Является ли операция в SQL гарантированной атомарной, если выполняется в одном операторе обновления?

    Давайте будем гением компьютера.