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 に答える