Скрипт автоматической генерации для CREATE TABLE, включая все индексы, ограничения и т. Д. c (не через SSMS) - PullRequest
1 голос
/ 04 февраля 2020

У меня есть процесс анонимизации данных, который берет рабочую копию базы данных и превращает ее в анонимную копию путем ОБНОВЛЕНИЯ некоторых столбцов.

В некоторых таблицах содержится несколько миллионов строк, поэтому вместо ОБНОВЛЕНИЯ столбцов, , что требует большого количества журналов , я пошел по пути

SELECT 
  Id,
  CAST('Redacted' AS NVARCHAR(255)) [ColumnRequiringAnonymization]
INTO MyTable_New
FROM MyTable

EXEC sp_rename MyTable, MyTable_old
EXEC sp_rename MyTable_new, MyTable
DROP TABLE MyTable_old

Проблема этого подхода в том, что в «новой» таблице больше нет ключей, индексов и других зависимых объектов. Я выяснил ключи и индексы, используя SP для генерации скриптов DROP и CREATE. SP основаны на написанном вручную SQL, как видно, например, в этом ответе .

Следующая проблема состоит в том, что у нас есть представление схемы со схемой в верхней части этой таблицы, которая имеет индексы и полнотекстовый индекс самостоятельно. Количество SP для генерации скриптов растет, и я уверен, что будут ошибки.

Есть ли способ полностью написать скрипт для таблицы / представления, используя только команды SQL? ie. точно так же, как это делает SSMS, когда вы нажимаете «Сценарий таблицы как - СОЗДАТЬ», но внутри хранимой процедуры?

1 Ответ

1 голос
/ 05 февраля 2020

Щелкните правой кнопкой мыши базу данных, выберите Задачи; там есть Генерация сценариев. Просто следуйте инструкциям или Google для получения дополнительной информации. enter image description here

...