【发布时间】:2020-02-04 20:12:02
【问题描述】:
我有一个数据匿名化过程,它获取数据库的生产副本,并通过对某些列进行 UPDATE 将其转换为匿名副本。
有些表包含几百万行,所以我没有更新列which is very log intensive,而是采用了
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 命令来完全编写表格/视图的脚本? IE。就像 SSMS 在您单击“将表编写为 - 创建为”但在存储过程中所做的那样?
【问题讨论】:
标签: tsql database-schema auto-generate