我正在使用SMO生成我的表和数据库的脚本。
以下是我的脚本编写器选项代码:
Scripter CreateScrp = new Scripter(srv);
CreateScrp.Options.ScriptDrops = false; // Script drop statements
CreateScrp.Options.WithDependencies = true; // Walk dependencies
CreateScrp.Options.DriAllConstraints = true; // to include referential constraints in the script
CreateScrp.Options.Triggers = true; // Script triggers
CreateScrp.Options.NoCollation = false; // Use default collation
CreateScrp.Options.ExtendedProperties = true; // Script Extended Properties
CreateScrp.Options.SchemaQualify = true; // Qualify objects with schema names
CreateScrp.Options.ScriptSchema = true; // Script schema
CreateScrp.Options.IncludeDatabaseContext = true;
CreateScrp.Options.EnforceScriptingOptions = true;
CreateScrp.ScriptingProgress += CreateScrp_ScriptingProgress;
但是当我执行查询时,约束(这里是外键)有错误,因为尚未创建外键来自的表。 在我生成的脚本中,MaterialActual表在MaterialUse之前创建。
SQL Server错误: 消息1767,16级,状态0,行561 外键' FK_MaterialActual_MaterialUse'引用无效表格' dbo.MaterialUse'。
问题来自表创建的顺序。 脚本编写器中是否有任何选项?
此致