gpt4 book ai didi

C# SMO 没有脚本约束

转载 作者:行者123 更新时间:2023-11-30 12:45:14 26 4
gpt4 key购买 nike

我在 C# 中使用 SMO 从数据库生成整个模式的脚本。

这是我使用的代码:

  // Instanciando
Server srv = new Server(con);

// Reference the database.
Database db = srv.Databases[ConfigurationManager.AppSettings["DB"].ToString()];

// Instanciando el scripteador
Scripter scrp = new Scripter(srv);
var urns = new List<Urn>();

// Propiedades del script
scrp.Options.IncludeHeaders = true;
scrp.Options.SchemaQualify = true;
scrp.Options.SchemaQualifyForeignKeysReferences = true;
scrp.Options.NoCollation = true;
scrp.Options.DriAllConstraints = true;
scrp.Options.DriAll = true;
scrp.Options.DriAllKeys = true;
scrp.Options.DriIndexes = true;
scrp.Options.ClusteredIndexes = true;
scrp.Options.NonClusteredIndexes = true;
scrp.Options.ToFileOnly = true;

// Obteniendo las tablas de la BD
foreach (Table tb in db.Tables)
{
// check if the table is not a system table
if(!tb.IsSystemObject)
{
urns.Add(tb.Urn);
}
}

// Instanciando un string builder para construir el script
StringBuilder builder = new StringBuilder();
System.Collections.Specialized.StringCollection sc = scrp.Script(urns.ToArray());
foreach (string st in sc)
{
// Agregando los comandos al string builder
builder.AppendLine(st);
builder.AppendLine("GO"); // Se coloca GO al final de cada statement
}

// Escribiendo el archivo
File.WriteAllText(path, builder.ToString());

问题是脚本是在没有任何约束的情况下生成的。 (FK、PK、UQ、CK)。

我做错了什么?

最佳答案

尝试使用:

scrp.Options.EnforceScriptingOptions = true;

关于C# SMO 没有脚本约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25410467/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com