【问题标题】:How to disable comment when using SMO使用 SMO 时如何禁用评论
【发布时间】:2017-07-27 18:11:30
【问题描述】:

我正在编写一个 SMO 脚本来将我的 SQL Server 2016 数据库导出到一个文本文件。但是 Scripter 总是在我的脚本之前添加此评论:

/*    ==Scripting Parameters==

    Source Server Version : Version140 (14.0.600)
    Source Database Engine Edition : Enterprise
    Source Database Engine Type : Standalone

    Target Server Version : Version140
    Target Database Engine Edition : Enterprise
    Target Database Engine Type : Standalone
*/

如何禁用生成此评论?

我尝试将 IncludeHeaders 设置为 false/true 但这会启用/禁用另一个评论。

我这样使用 SMO:

var connectionString = "...";
var serverConnection = new ServerConnection(new SqlConnection(connectionString));
var sqlServer = new Smo.Server(serverConnection);
var createDbScriptOptions = new Smo.ScriptingOptions();
createDbScriptOptions.NoFileGroup = true;
createDbScriptOptions.IncludeFullTextCatalogRootPath = false;
StringCollection strcoll = db.Script(createDbScriptOptions);
foreach (String st in strcoll)
{
    Console.WriteLine(st);
}

或者在使用脚本编写表格或其他对象时

scripter.Script(new Urn[] { tb.Urn }

scripter.EnumScript(new Urn[] { tb.Urn }

评论也会被添加。

【问题讨论】:

    标签: c# sql-server smo


    【解决方案1】:

    显然,这是 SSMS v17.2 附带的一项新功能,目前还没有 SMO 脚本选项标志可以将其关闭。应该在 SSMS 的下一个版本中。

    查看 Microsoft Connect 上的帖子:

    Microsoft 于 2017 年 8 月 29 日下午 1:44 发布我将添加一个新的 用于在下一版本中生成标头的脚本选项 SMO/SSMS。默认情况下这将是错误的,这意味着您不会得到 除非您特别启用新标头。谢谢你 回馈! -Charles Gagnon (chgagnon@microsoft.com)

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 不,这不会影响评论。它会影响 USE <db> 是否会被编写脚本。
      【解决方案3】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-03-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 2012-05-30
      相关资源
      最近更新 更多