我正在考虑使用C#SMO库以编程方式创建当前数据库结构的副本(不包含数据)。我已经成功地完成了架构,表,存储过程和外部资源的迁移,但是我很难做到这一点。我正在使用这样提供的表对象:
TableCollection tables = server.Databases[source].Tables;
foreach (Table table in tables)
{
if (table.IsExternal)
{
Table newTable = new Table(ddatabase, table.Name, table.Schema);
foreach (Column col in table.Columns)
{
Column newColumn = new Column(newTable, col.Name, col.DataType);
newTable.Columns.Add(newColumn);
}
//newTable.IsExternal = table.IsExternal;
newTable.Create();
}
}
如果我取消注释isExternal以将其设置为true,则会引发错误。将代码注释掉将创建表,但不会创建外部表。
任何有关如何解决此问题的想法/建议将不胜感激
最佳答案
我找到了解决方案,我只需要在下面添加以下代码:
newTable.ExternalTableDistribution = table.ExternalTableDistribution;
newTable.DataSourceName = table.DataSourceName;
newTable.IsExternal = true;
关于c# - C#SMO创建外部表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50699351/