我们只是说我在SSMS中有一张表A,上面有一些数据。有子表,如列,约束,触发器,索引和统计等。
我想创建一个与表A具有相同属性的类似表。我知道我需要转到脚本表As->创建To->用于复制表结构的新查询窗口。
然而,在这样做之后,我意识到当表A中有统计数据时,我新表中的统计数据是空的。我错过了什么吗?
答案 0 :(得分:0)
你可以使用以下的powershell(我从我的一篇旧博文中找到)来编写统计信息blob的脚本:
pushd;
import-module sqlps -disablenamechecking;
popd;
$opts = new-object Microsoft.SqlServer.Management.SMO.ScriptingOptions;
$opts.OptimizerData = $true;
$server = new-object Microsoft.SqlServer.Management.SMO.Server ".";
$database = $server.Databases["AdventureWorks2008R2"];
foreach ($table in $database.Tables) {
foreach ($stat in $table.Statistics) {
$stat.Script($opts);
}
}
上面将编写AdventureWorks2008R2数据库中所有表的所有统计信息(包括直方图数据)。你应该能够根据自己的需要定制它。