Я пытаюсь импортировать данные в таблицу с помощью задачи Import Data
в SQL Server Management Studio. Всего 26 строк из исходных 49325. ( Правка : отсюда 99,9%: (1-26 / 49325) * 100 = 99,9%
При правильном использовании DTS в Enterprise Manager все 49325 строк выводятся.
Почему? SSMS не импортирует все строки и сообщает об успешной передаче 49 325 и отсутствии ошибок? Почему Enterprise Manager может правильно импортировать все 49 325 строк?
Версия Microsoft SQL Server Management Studio: 10.0.1600.22 (с SQL Server 2008, установлен сегодня на новой машине с Windows 7 применен SP1)
Таблица STRTransactions
изначально пуста:
Источник - база данных ContosoFrobManager
на литии
:
Назначение - база данных Grob
на литии
;
Я хочу скопировать данные из одной (или нескольких) таблиц:
Я хочу скопировать таблицу STRTransactions
:
Можно добавить к существующей таблице, ничего страшного (она пуста). я хочу включить идентификационные вставки. И не пытайтесь импортировать метку времени (так как вы все равно будете жаловаться):
Беги немедленно, ничего страшного:
Ага, ты собираешься делать вещи:
Мне удалось поймать его, когда он передавал 49325 строк, около отметки 1k:
Все готово. Все 49325 строк успешно скопированы:
И вот отчет:
Выполнение прошло успешно
Инициализация задачи потока данных (Успех)
Инициализация соединений (Успех)
Установка команды SQL (Успех)
Установка соединения с источником (Успешно) )
Установка целевого соединения (успех)
Проверка (успешность) сообщений Предупреждение 0x80049304: Задача 1 потока данных: Предупреждение: не удалось открыть глобальный общий доступ память для связи с производительностью DLL; счетчики производительности потока данных недоступны. Чтобы решить, запустите этот пакет как администратор, или на системной консоли. (SQL Server Мастер импорта и экспорта) Предупреждение 0x80047076: Задача 1 потока данных: столбец вывода "отметка времени" (158) на output "Выход источника OLE DB" (11) и компонент "Источник - STRTransactions" (1) в дальнейшем не используется в Задача потока данных. Удаление неиспользованного выходной столбец может увеличить поток данных выполнение задач. (Импорт SQL Server и мастер экспорта)
Подготовка к выполнению (Успех)
Предварительное выполнение (Успешно)
Выполнение (Успешно)
Копирование в [dbo]. [STRTransactions] (Успех) Передано 49325 строк
Сообщения Информация 0x402090df: Данные Задача потока 1: последняя фиксация для вставка данных в компонент " «Пункт назначения - STRTransactions» (163) » началось. (Импорт SQL Server и Мастер экспорта) Информация 0x402090e0: Задача 1 потока данных: финальный коммит для вставки данных в "компоненте" Назначение - STRОперация "(163)" завершена. (Мастер импорта и экспорта SQL Server)
- Информация о сообщениях после выполнения (успех) 0x4004300b: задача потока данных 1: "компонент" Назначение - STRTransactions "(163)" написал 49325 ряды. (Импорт и экспорт SQL Server Wizard)
Отлично. Все сделано. « записал 49325 строк ».
За исключением того, что он записал только 26 строк:
Очевидно, я не сумасшедший. я все сделал правильно. И даже если бы я этого не сделал, SSMS не указывает на какие-либо проблемы. я повторил эти же шаги 8 раз:
Каждый раз это ровно 26 строк, нет больше, не меньше. Но что было уничтожено, хозяин или ученик?
Но чтобы доказать, что я не делаю ничего плохого, мы попробуем еще раз с Enterprise Manager . Отличный инструмент, написанный более десяти лет назад:
Я удалил 26 строк из таблицы STRTransactions
. я мог бы предоставить снимок экрана, показывающий, что я начинаю с пустой таблицы; или вы могли бы просто поверить мне в этом. А поскольку мастера почти идентичны, вы увидите почти одинаковые скриншоты. Извини за это; но никто не поверит мне без доказательств.
Я хочу экспортировать из базы данных ContosoFrobManager
на литий
:
я хочу импортировать в Grob
база данных на литии
:
я хочу скопировать таблицы:
я хочу скопировать таблицу транзакций STR:
Вы можете продолжить и добавить строки в существующую таблицу (она все равно пуста) . я хочу, чтобы вы вставили значения идентичности. И не пытайтесь вставить значения отметки времени
, вы все равно выдадите ошибку:
Бегите сейчас, конечно:
Ага, вы собираетесь что-то сделать:
Мне удалось поймать это в середине импорта, около 12 тыс. Строк:
Все готово, успешно скопировано 49325 строк:
И мы выбираем из таблицы, чтобы увидеть строки:
Почему SSMS , инструмент, который активно разрабатывается уже 6 лет, до сих пор не получил широкого применения? В то время как в Enterprise Manager первоначальная команда разработчиков почти не содержала ошибок? Это еще один пример критических ошибок в SSMS. Последняя обнаруженная мною критическая ошибка заключалась в том, что она не выполняет сценарии для всех объектов .
Можем ли мы попросить команду разработчиков Enterprise Manager переписать SSMS?
Можно с уверенностью сказать, что единственные ответы, которые я увижу, - это
Конечно, у меня есть обходной путь, остановитесь с помощью SQL Server Management Studio. Но я'
Коллега:
Как?
Я:
Я использовал Enterprise Manager
Коллега:
насмехается Ну.
Коллега:
Тогда мне, возможно, придется это установить.
Изменить: Прочитав мой старый вопрос о ServerFault, о том, что SSMS не создает сценариев для некоторых таблиц в базе данных, я в конце концов, " Сигнал, если вы ненавидите SSMS ". Итак:
Сигнал, если вы ненавидите SSMS.
Я создал билет в Microsoft Connect . Делайте ставки на то, когда этот выпуск будет Закрыт как невоспроизводимый
. Отредактируйте этот вопрос, добавив свое имя и дату. Ближайший, не перейдя, получит 100 репутации! (я пожертвую свою репутацию) Если у вас недостаточно представителей для редактирования вопросов, оставьте свое предположение в комментарии, и я добавлю его.
Обновление: Закрыто 18.03.2011. Отключено на 43 дня.