我创建了由Scripter.Script()
方法自动生成的脚本。
但是如果想要摆脱脚本中包含的文件路径。使用Scripter类生成脚本时需要设置哪个属性?
SQL脚本:
CREATE DATABASE [ContactManager] ON PRIMARY
( NAME = N'ContactManager', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\ContactManager.mdf' , SIZE = 8192KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB )
LOG ON
( NAME = N'ContactManager_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\ContactManager.ldf' , SIZE = 5184KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)
GO
但现在我想生成没有主语句的脚本,如下所示:
CREATE DATABASE [ContactManager] GO
答案 0 :(得分:4)
ScriptingOptions.NoFileGroup
应该禁止其他文件组子句。
此外,似乎只是在没有启用属性的情况下调用db.Script()
无论如何都会省略文件组,所以我不肯定这会在没有看到您的代码的情况下为您工作。
请参阅下面的示例:
Microsoft.SqlServer.Management.Smo.Server srv = new Server(".");
Microsoft.SqlServer.Management.Smo.Database db = new Database(srv, "Yak");
System.Collections.Specialized.StringCollection statements = db.Script();
Console.WriteLine(statements);
ScriptingOptions so = new ScriptingOptions();
so.NoFileGroup = false;
foreach (string s in db.Script(so))
{
Console.WriteLine(s);
}