Проблема
Я пытаюсь импортировать данные в таблицу с помощью задачи SQL Server Management Studio Import Data
. Он включает только 26 строк, из оригинала 49325. ( Изменить: то, где 99,9% происходит от: (1-26/49325)*100 = 99.9%
Использование DTS в Enterprise Manager правильно содержит все 49 335 строк.
Почему SSMS не импортирует все строки, сообщая, что он успешно передал 49,325, и не испытывал ошибок? Почему Enterprise Manager способен правильно импортировать все 49 335 строк?
Версия Microsoft SQL Server Management Studio: 10.0.1600.22 (из SQL Server 2008, установленной сегодня на новой машине Windows 7, применяется пакет обновления 1 (SP1))
Доказательство - импорт с использованием SSMS
Таблица STRTransactions
изначально пуста:
Источник - это база данных ContosoFrobManager
на lithium
:
Назначение - это база данных Grob
на lithium
;
Я хочу скопировать данные из одной (или более) таблиц:
Я хочу скопировать таблицу STRTransactions
:
Вы можете добавить в существующую таблицу то, что она прекрасно (она пуста). Я хочу включить вставки для идентификации. И не пытайтесь импортировать временную метку (так как вы все равно будете жаловаться):
Запустите немедленно, это штраф:
Да, ты собираешься делать вещи:
Мне удалось поймать его, когда он передавал 49 325 строк вокруг отметки 1k:
Все сделано. Все 49.325 строк успешно скопированы:
И вот отчет:
Выполнение выполнено успешно
Инициализация задачи потока данных (успех)
Инициализация соединений (успех)
Настройка команды SQL (успех)
Настройка подключения источника (успех)
Настройка целевого соединения (успех)
Предупреждения (успешные) сообщения Предупреждение 0x80049304: Поток данных Задача 1: Предупреждение: не удалось открыть глобальные общие памяти для связи с производительностью DLL; счетчики производительности потока данных не доступны. Чтобы разрешить, запустите этот пакет как администратор или на системной консоли. (SQL Server Мастер импорта и экспорта) Предупреждение 0x80047076: поток данных Задача 1: выходной столбец "timestamp" (158) on вывода "Выход источника OLE DB" (11) и компонент "Источник - STRTransactions" (1) впоследствии не используется в Задача потока данных. Удаление этого неиспользуемого выходной столбец может увеличить поток данных выполнение задач. (Импорт SQL Server и Мастер экспорта)
Подготовьтесь к выполнению (успеху)
Предварительно выполнить (Успех)
Выполнение (успешное выполнение)
Копирование на [dbo]. [STRTransactions] (Успех) 49325 перенесенных строк
Информация о сообщениях 0x402090df: Данные Поток Задача 1: Окончательная фиксация для вставка данных в компонент "Назначение - STRTransactions" (163) "начал. (Импорт и импорт SQL Server Мастер экспорта) 0x402090e0: поток данных Задача 1: окончательная фиксация для вставки данных в" компоненте "Назначение - STRTransactions" (163) "закончилось. (Мастер импорта и экспорта SQL Server)
- Сообщения после успешного выполнения (Success) 0x4004300b: задача потока данных 1:" компонент "Назначение - STRTransactions" (163)" написал 49325 строк. (Импорт и экспорт SQL Server Мастер)
Отлично. Все сделано. "написал 49325 строк".
За исключением того, что он написал только 26 строк:
Очевидно, я не сумасшедший. я сделал все правильно. И даже если я этого не сделал, SSMS не дает никаких указаний на какие-либо проблемы. Я повторил эти же шаги 8 раз:
- 5 раз для себя
- дважды, чтобы продемонстрировать двум различным коллегам.
- один раз, чтобы сделать снимок экрана для этого вопроса SO
Каждый раз, когда он ровно 26 строк, не больше, не меньше. Но что было разрушено, хозяин или аптека?
Но чтобы доказать, что я не делаю ничего плохого, мы попробуем еще раз с Enterprise Manager. Отличный инструмент, написанный более десяти лет назад:
Доказательство - импорт с использованием Enterprise Manager
Я удалил 26 строк из таблицы STRTransactions
. я мог бы предоставить скриншот, который я начинаю с пустой таблицы; или ты мог бы просто поверить мне в это. И поскольку волшебники почти идентичны, вы увидите почти одинаковые скриншоты. Извини за это; но никто не поверит мне без доказательств.
Я хочу экспортировать из базы данных ContosoFrobManager
на lithium
:
Я хочу импортировать в базу данных Grob
на lithium
:
Я хочу скопировать таблицы:
Я хочу скопировать таблицу STR транзакций:
Вы можете продолжить и добавить строки в существующую таблицу (в любом случае она пуста). Я хочу, чтобы вы вставляли идентификационные значения. И не пытайтесь вставлять значения timestamp
, вы все равно будете выбросить ошибку:
Запустите сейчас, конечно:
Да, вы собираетесь делать что-то:
Мне удалось поймать его в середине импорта, около 12 тыс. строк:
Все сделано, 49 325 строк успешно скопированы:
И мы выбираем из таблицы, чтобы увидеть строки:
Почему SSMS, инструмент, который активно развивается в течение 6 лет, все еще не получил права? Хотя Enterprise Manager был почти без ошибок от первоначальной команды разработчиков? Это еще один пример критических ошибок в SSMS. Последней критической ошибкой, которую я нашел было то, что она не script всех объектов.
Можем ли мы, чтобы команда разработчиков Enterprise Manager перезаписала SSMS?
Можно с уверенностью сказать, что единственные ответы, которые я увижу, это
- используйте другой инструмент.
- Вы сообщили об этом в Microsoft Connect?
- вызов PSS
Конечно, у меня есть обходной путь, прекратите использование SQL Server Management Studio. Но мне уже приходится запускать Enterprise Manager в 32-битной совместимости XP Mode (как вы можете видеть на тематических экранах Luna на рабочем столе Aero)
Me:
Я получил его на работу
Colleague:
Как?
Me:
Я использовал Enterprise Manager
Colleague:
Издевательство Ну.
Colleague:
Возможно, мне придется установить это.
Изменить: Чтение моего старого вопроса на ServerFault, о SSMS, не выполняющем скрипты некоторых таблиц в базе данных, в конце концов, "Honk, если вы ненавидите SSMS". Итак:
Хонк, если вы ненавидите SSMS.
Игра
Я создал билет в Microsoft Connect. Разместить ставки, если эта проблема будет Closed as not reproducible
. Измените этот вопрос, добавив свое имя и дату. Тот, кто ближе всего, не перейдет, выиграет 100 человек! (я пожертвую свою репутацию) Если у вас недостаточно ответов на редактирование вопросов, поместите свое предположение в комментарий, и я добавлю его.
The Guesses
- Ian Boyd: 5/1/2011
Обновление: Оно закрыто 18.03.2011. Выкл. На 43 дня.