为 CREATE TABLE 自动生成脚本,包括所有索引、约束等(不通过 SSMS)
Auto generate script for CREATE TABLE including all indices, constraints, etc (not via SSMS)
我有一个数据匿名化过程,它获取数据库的生产副本,并通过更新某些列将其变成匿名副本。
一些 table 包含几百万行,所以我没有更新列,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
这种方法的问题是 "new" table 不再有任何键、索引和其他依赖对象。我已经找出使用 SP 生成 DROP 和 CREATE 脚本的键和索引。 SP 基于手动编写的 SQL 可以看出,例如in this answer.
下一个问题是我们在此 table 之上有一个模式绑定视图,它有自己的索引和全文索引。生成脚本的SP越来越多,肯定会有错误的。
有没有办法仅使用 SQL 命令来完全编写 table/view 脚本? IE。就像在存储过程中单击 "Script table as - CREATE to" 时 SSMS 所做的那样?
右击数据库,select任务;那里有生成脚本。只需按照提示或 Google 获取更多信息。
我有一个数据匿名化过程,它获取数据库的生产副本,并通过更新某些列将其变成匿名副本。
一些 table 包含几百万行,所以我没有更新列,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
这种方法的问题是 "new" table 不再有任何键、索引和其他依赖对象。我已经找出使用 SP 生成 DROP 和 CREATE 脚本的键和索引。 SP 基于手动编写的 SQL 可以看出,例如in this answer.
下一个问题是我们在此 table 之上有一个模式绑定视图,它有自己的索引和全文索引。生成脚本的SP越来越多,肯定会有错误的。
有没有办法仅使用 SQL 命令来完全编写 table/view 脚本? IE。就像在存储过程中单击 "Script table as - CREATE to" 时 SSMS 所做的那样?
右击数据库,select任务;那里有生成脚本。只需按照提示或 Google 获取更多信息。