Устранение неполадок создания данных
При работе с планами создания данных могут встретиться следующие проблемы.
План создания данных завершается неудачей при нарушении проверочных ограничений
Не удается присвоить генератор данных регулярных выражений столбцам пользовательского типа
Не удается создать данные для таблиц с триггерами удаления
Проблемы с генераторами, связанными с данными
Не удается создать данные для столбцов SPARSE
План создания данных завершается неудачей при нарушении проверочных ограничений
Когда создаются данные для столбца, имеющего проверочное ограничение, операция завершается неудачей, если созданные данные нарушают это ограничение. Можно воспользоваться окном Предварительный просмотр созданных данных, чтобы перед выполнением плана узнать, нарушают ли данные это ограничение. Дополнительные сведения см. в разделе Практическое руководство. Предварительный просмотр плана создания данных.
Для решения данной проблемы необходимо прибегнуть к одному из следующих способов.
Использование свойств Min и Max для управления созданием данных. Для примера предположим, что есть таблица с двумя столбцами, названными StartDate и EndDate, и проверочное ограничение, требующее, чтобы дата StartDate предшествовала дате EndDate. Для достижения этой цели можно присвоить свойству Max столбца StartDate значение, меньшее значения свойства Min столбца EndDate. Дополнительные сведения см. в разделе Задание сведений о создании данных для столбца.
Воспользоваться генератором, связанным с данными. Дополнительные сведения см. в разделе Генератор, связанный с данными.
Воспользоваться пользовательским генератором данных. Дополнительные сведения см. в разделе Создание специализированных тестовых данных с помощью пользовательского генератора данных.
Не удается назначить генератор данных регулярных выражений столбцам определенного пользователем типа с ограничением уникальности
При попытке назначить генератор данных столбцу, имеющему ограничение уникальности, в списке доступных генераторов отображаются только те, которые могут генерировать уникальные значения. Поскольку создание уникальных значений генератором регулярных выражений не гарантируется, его нельзя использовать для заполнения столбца пользовательского типа, имеющего ограничение уникальности.
Для создания данных для столбца пользовательского типа с ограничением уникальности необходимо использовать связанный с данными или пользовательский генератор данных. Дополнительные сведения см. в разделах Генератор, связанный с данными и Создание специализированных тестовых данных с помощью пользовательского генератора данных.
Не удается создать данные для таблиц с триггерами удаления
Некоторые таблицы имеют триггеры, препятствующие удалению из них строк. Если попытаться удалить строку такой таблицы, триггер выполнит откат операции удаления. Для такой таблицы или таблицы, которая на нее ссылается, нельзя создавать данные обычным способом. Например, нельзя обычным способом создавать данные для таблицы Employee базы данных AdventureWorks.
Для того чтобы создать данные для такой таблицы, следует использовать один из следующих методов.
Отключите или удалите триггер, выполните план создания данных, а затем включите или добавьте триггер заново.
Выполните план создания данных. Когда вам будет предложено очистить содержимое таблиц перед вставкой новых строк, нажмите кнопку Нет. Созданные вами новые данные добавятся к имеющимся в таблице данным, и триггер удаления активизирован не будет. Результаты этого метода могут быть непредсказуемыми, и если какой-либо столбец имеет ограничение уникальности, может произойти ошибка.
Проблемы с генераторами, связанными с данными
Если работа генератора данных завершается неудачей для одного или более столбцов, для которых определен генератор, связанный с данными, в столбце "Выходные данные генератора" в окне Сведения о столбцах отображается текст "Нет вывода" или "Нет принудительного вывода". В следующих разделах описаны причины неудачи создания данных такого вида.
Нет вывода
Если в столбце "Выходные данные генератора" отображается текст "Нет вывода", то, вероятнее всего, неверна инструкция SELECT, заданная в свойстве Select Query. Поскольку с просмотром инструкции SELECT в окне Свойства могут возникнуть трудности, для проверки ее правильности можно скопировать эту инструкцию в редактор Transact-SQL.
Нет принудительного вывода
Если в столбце "Выходные данные генератора" отображается текст "Нет принудительного вывода", это означает, что возвращаемый инструкцией SELECT тип данных не может быть приведен к типу данных столбца, для которого создаются данные. Например, если требуется создать данные для столбца типа INT, следующая инструкция SELECT вызовет отображение текста "Нет принудительного вывода".
SELECT RAND() * (column1 - column2) AS Column1 FROM Table1
Необходимо следующим образом обновить эту инструкцию SELECT, чтобы вернуть данные, допускающие приведение к типу INT:
SELECT CAST(RAND() * (column1 - column2) AS INT) AS Column1 FROM Table1
Не удается создать данные для столбцов SPARSE
При попытке создать данные для таблицы, содержащей один или несколько столбцов SPARSE и COLUMN_SET, может отобразиться следующее сообщение об ошибке: "Не удалось создать данные из-за следующего исключения: заданное значение ColumnMapping не соответствует ни одному столбцу в источнике или назначении."
Такая ошибка может, например, произойти при попытке создания данных для следующей таблицы:
CREATE TABLE [dbo].[SparseTable]
(
ID INT PRIMARY KEY,
C1 varchar(20) SPARSE NULL,
C2 smallint SPARSE NULL,
C3 varchar(20) SPARSE NULL,
SpecialPurposeColumns XML COLUMN_SET FOR ALL_SPARSE_COLUMNS
)
Чтобы создать данные для таблицы, содержащей столбцы SPARSE и COLUMN_SET, следует либо изменить предпочтительный метод вставки данных в "SqlV1CompatibilitySink", либо воспользоваться настраиваемым генератором данных.
При использовании "SqlV1CompatibilitySink" генерация данных для больших таблиц может выполняться медленно.
Дополнительные сведения об изменении предпочтительного метода вставки данных см. в разделе Практическое руководство. Определение значений по умолчанию и параметров для генераторов данных. Дополнительные сведения о создании и развертывании настраиваемого генератора данных см. в разделе Создание специализированных тестовых данных с помощью пользовательского генератора данных.