3

我创建了由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 
4

1 回答 1

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);
}
于 2013-01-25T23:09:53.420 回答