2014-12-25 4 views
2

Оператор insert into требует предоставления значений для всех столбцов, не имеющих значений по умолчанию.Можно ли вставить произвольные данные в таблицу?

Можно ли сказать, сервер

вставки любого значения вы хотите, я не забочусь, единственным , что я хочу вы были удовлетворены данными.

Другими словами, я просто хочу явно установить значения только для подмножества столбцов. Это достижимо? (ОК, чтобы отключить ограничения)

Мне нужна эта странная функциональность для sql-скриптов, которые заполняют БД перед тестом интеграции. В противном случае я получаю кучу тестов, которые не сработают при изменении схемы таблицы, несмотря на то, что тесты не зависят от измененного набора столбцов, которые необходимы для операторов insert into.

+0

Вместо того, чтобы делать что-то странное в базе данных, почему бы вам не использовать систему макета базы данных? Вам вообще не нужна база данных. –

+0

@JorgeCampos Это поведение ложной системы на 100% похоже на поведение реального SQL Server? Я бы с удовольствием использовал его, но я не единственный, кто принимает решения. –

+1

@JorgeCampos: Используйте mocks в модульных тестах, а не в тестах интеграции. Интеграционные тесты называются так, потому что они интегрируют реальные компоненты. –

ответ

4

Ничего подобного не встроено. Определите ограничения по умолчанию или отразите структуру таблицы, используя представления системного каталога, чтобы генерировать тестовые данные во время выполнения.

0

Random - это все еще «функция», в которой вы должны ввести код. На работе я использую SQL Data Generator для генерации случайных данных. Да, я могу закодировать его, используя большое количество NEWID() и базу данных имени ребенка, но это не стоит моего времени.

+0

Я не хочу, чтобы эта случайная часть была статичной, потому что она также имеет структуру, которая не имеет отношения к тесту. Проблема в том, что в данный момент не в самих данных. –

Смежные вопросы