Импорт/экспорт SQL Server: включить вставку удостоверений

Я использую мастер импорта и экспорта SQL Server 2014 для копирования данных из одного экземпляра SQL Server в другой.

У меня 8 баз данных, в каждой по 63 таблицы, всего 504 таблицы.

Импорт/экспорт работает нормально, данные передаются в целевую базу данных. У меня проблема в том, что мне нужна опция Enable Identity Insert для каждой таблицы.

Мне нужно, чтобы Enable Identity Insert по умолчанию было отмечено/выбрано, иначе я буду здесь весь день, просто нажимая Edit mappings... > Enable Identity Insert > OK... Вниз... Edit mappings... > Enable Identity Insert > OK... Вниз... Edit mappings... > Enable Identity Insert > OK...

Вы поняли идею...

Есть ли способ установить значение по умолчанию для Enable Identity Insert..?


person Stephen Last    schedule 02.02.2018    source источник
comment
Может быть установлен только для одного стола за раз. docs.microsoft.com/ en-us/sql/t-sql/statements/ At any time, only one table in a session can have the IDENTITY_INSERT property set to ON. If a table already has this property set to ON, and a SET IDENTITY_INSERT ON statement is issued for another table, SQL Server returns an error message that states SET IDENTITY_INSERT is already ON and reports the table it is set ON for. С таблицами 504 вам может быть лучше сделать что-то динамическое или использовать SSIS с циклом.   -  person Jacob H    schedule 02.02.2018
comment
Зачем он нужен на каждом столе? Если вам всегда нужно вставлять значение идентификатора, то похоже, что его использование в качестве столбца INDENTITY является неправильным выбором; он предназначен больше для случаев, когда SQL Server будет обрабатывать создание идентификатора, а не пользователя. Возможно, проблема не в необходимости включения INDENTITY_INSERT, а в том, что вы использовали столбец IDENTITY и вам нужно изменить его, чтобы он был просто int/bigint.   -  person Larnu    schedule 02.02.2018
comment
Может быть, репликация будет лучшим вариантом для копирования данных?   -  person Sean Lange    schedule 02.02.2018
comment
@JacobH Это не проблема. Я не работаю с SQL напрямую, я использую мастер импорта/экспорта, который входит в состав Management Studio. Отметка Enable Identity Insert для всех таблиц работает. Мой вопрос касается того, чтобы по умолчанию этот флажок был отмечен/включен, поэтому мне не нужно отмечать его вручную 504 раза.   -  person Stephen Last    schedule 02.02.2018
comment
@Larnu Все 63 таблицы имеют столбец идентификатора первичного ключа Int, большинство из которых настроено на автоматическое увеличение. Я копирую все данные из всех таблиц из одного экземпляра SQL в идентичный экземпляр (те же имена и структура таблиц). Вот как настроена эта база данных, я не собираюсь вносить серьезные изменения, чтобы приспособиться к этому разовому перемещению данных. Мой вопрос касается установки флажка по умолчанию в мастере экспорта/импорта, а не использования столбцов идентификаторов.   -  person Stephen Last    schedule 02.02.2018
comment
Я не думаю, что вы можете изменить значения по умолчанию в мастере импорта/экспорта. Честно говоря, это не лучший инструмент в мире; это очень много, что будет делать приложение. Это не замена правильному процессу ETL, например использованию SSIS.   -  person Larnu    schedule 02.02.2018
comment
@Larnu Вы можете это сделать, я добавил ответ ... Вы, конечно, правы, мастер импорта / экспорта - это базовый инструмент. Это одноразовая передача данных, поэтому на этот раз она работает для меня.   -  person Stephen Last    schedule 02.02.2018


Ответы (1)


Нашел это, что отвечает на мой вопрос:

https://dba.stackexchange.com/questions/190119/how-to-set-enable-identity-insert-for-all-the-tables-once-during-importing

Ты можешь это сделать...

Вы выбираете несколько строк, затем кнопка Edit mappings... ведет к другому диалоговому окну, где вы можете установить параметры для всех таблиц. Ответ выше имеет хороший экран печати, показывающий это.

Звучит просто, но я думаю, что пропустил это, потому что в интерфейсе есть два метода выбора на одной форме:

  1. Выбор флажка - для включения исходной таблицы в передачу данных
  2. Выделить выбор строки — для выбора нескольких строк для установки параметров
person Stephen Last    schedule 02.02.2018