Что я пытаюсь сделать: Создайте SQL script с помощью С#, чтобы создать точную копию существующей таблицы.
Мой вопрос:. Как бы вы определили параметры в scriptingOptions, чтобы гарантировать, что полученный script будет создавать 100% точную копию таблицы? Есть 78 вариантов, и не понятно, как это сделать. Первоначально, я думал, вызывая table.Script() без передачи каких-либо ScriptingOptions, что я мог бы получить точную копию моей таблицы, но это не делает трюк (например, индексы не кодируются, если они не указаны в параметры сценариев). Кажется, что мне нужно вручную указать каждое свойство в 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();