У меня есть процесс анонимизации данных, который берет рабочую копию базы данных и превращает ее в анонимную копию путем ОБНОВЛЕНИЯ некоторых столбцов.
В некоторых таблицах содержится несколько миллионов строк, поэтому вместо ОБНОВЛЕНИЯ столбцов, , что требует большого количества журналов , я пошел по пути
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, когда вы нажимаете «Сценарий таблицы как - СОЗДАТЬ», но внутри хранимой процедуры?