私がやろうとしていること: C#を使用してSQLスクリプトを作成し、既存のテーブルの正確なコピーを作成します。
私の質問: scriptingOptionsでオプションをどのように定義して、結果のスクリプトがテーブルの100%正確なコピーを作成することを保証しますか?78のオプションがあり、これを行う方法は明確ではありません。最初は、ScriptingOptionsを渡さずにtable.Script()を呼び出すことで、テーブルの正確なコピーを取得できると思いましたが、これではうまくいきません(たとえば、インデックスは、で指定されていない限りコーディングされません)。スクリプトオプション)。実際には、ScriptingOptionsで各プロパティを手動で指定して、必要なものを取得する必要があるようです。希望する結果を得るために、どれを設定しますか?テーブルを正確にコピーするのはそれほど難しいことではありません。
使用可能なスクリプトオプション:使用可能なすべてのオプションは次のとおりです。http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.scriptingoptions_properties.aspx
私のコード:
Server server = new Server("XXX");
Database database = new Database();
database = server.Databases["YYY"];
Table table = database.Tables["ZZZ", @"PPP"];
ScriptingOptions scriptingOptions = new ScriptingOptions();
//Define properties in scriptingOptions
StringCollection result = table.Script(scriptingOptions);
var script = "";
foreach (var line in result) {
script += line;
}
System.IO.StreamWriter fs = System.IO.File.CreateText(@"QQQ");
fs.Write(script);
fs.Close();