我有一个数据匿名化过程,该过程获取数据库的生产副本,并通过UPDATE-ing一些列将其转换为匿名副本。
有些表包含几百万行,所以我没有对列which is very log intensive进行UPDATE-ing,而是采用了
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,例如in this answer。
下一个问题是,我们在此表的顶部有一个架构绑定的视图,该视图本身具有索引和全文本索引。用于生成脚本的SP的数量正在增加,并且我肯定会出错。
是否有一种仅通过使用SQL命令来完全编写表/视图脚本的方法?即。就像SSMS在您单击“脚本表为-创建到”但在存储过程中一样吗?