C# SMO 创建外部表

标签 c# sql smo

我正在考虑使用 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# SMO 创建外部表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50699351/

相关文章:

c# - 如何在 OpenCVSharp 代码中使用新的 C++ 样式 API?

c# - Predicate<T> 相对于 Func<T,bool> 的优势?

php - MySQL - 按字符数排序

sql - GROUP BY 和 COUNTs 未产生预期结果

c# - 学习 C# 和 SQL Server 2008 的服务器管理对象 (SMO) 的好书?

c# - 如何创建图像并将其保存以供以后在 XNA 中绘制为纹理?

c# - Azure AppendBlob 的属性 AppendBlobCommissedBlockCount 为 null

c# - SQL 选择与带通配符的 URL 匹配的行

sql-server - 不同步时重新启动日志传送

c# - 编写 SQL Server 存储过程脚本时如何包含模式?