【问题标题】:Avoiding name collisions when creating external tables on SQL Server datawarehouse在 SQL Server 数据仓库上创建外部表时避免名称冲突
【发布时间】:2016-03-20 21:57:46
【问题描述】:

我正在尝试使用 Polybase 将数据库 AdventureWorks 迁移到 SQL Server 数据仓库。

假设我有一个架构 HumanResources 和该架构中的一个表 Department

CREATE TABLE [HumanResources].[Department]
(
    [DepartmentID] [smallint] NOT NULL,
    [Name] [nvarchar](50) NOT NULL,
    [ModifiedDate] [datetime] NOT NULL
)

在将数据从 Azure blob 加载到 SQL Server 数据仓库之前,我需要为 [HumanResources].[Department] 的数据创建一个外部表。

CREATE EXTERNAL TABLE ex.TableName 
(
    [DepartmentID] [smallint] NOT NULL,
    [Name] [nvarchar](50) NOT NULL,
    [ModifiedDate] [datetime] NOT NULL
)
WITH (
    LOCATION='/path/',
    DATA_SOURCE=AzureStorage,
    FILE_FORMAT=TextFile
);

我在 [ex] 架构下创建所有外部表,我应该如何表示原始架构以避免冲突。

我不能[ex].[HumanResources].[Department],我想避免为外部表创建不必要的模式。

有没有一种简单的方法来表示这个?

【问题讨论】:

    标签: sql-server azure azure-sqldw


    【解决方案1】:

    我们看到的一个常见模式是简单地将 _ext 添加到表名的末尾。因此,按照您的示例,您将拥有以下内容:

    [人力资源].[部门] [人力资源].[Department_ext]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-03
      • 1970-01-01
      • 2017-11-02
      • 2011-11-25
      • 2019-08-02
      • 1970-01-01
      • 2014-01-30
      • 2017-01-04
      相关资源
      最近更新 更多