在 SQL 服务器数据仓库上创建外部表时避免名称冲突
Avoiding name collisions when creating external tables on SQL Server datawarehouse
我正在尝试使用 Polybase 将数据库 AdventureWorks
迁移到 SQL 服务器数据仓库。
假设我有一个架构 HumanResources
和一个 table Department
在该架构中。
CREATE TABLE [HumanResources].[Department]
(
[DepartmentID] [smallint] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[ModifiedDate] [datetime] NOT NULL
)
在将数据从 Azure blob 加载到 SQL 服务器数据仓库之前,我需要为 [HumanResources].[Department]
的数据创建一个外部 table。
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]
模式下创建所有外部 table,我应该如何表示原始模式以避免冲突。
我做不到 [ex].[HumanResources].[Department]
,我想避免为外部 table 创建不必要的模式。
有没有简单的表示方法?
我们看到的一种常见模式是简单地将 _ext 添加到 table 名称的末尾。因此,按照您的示例,您将拥有以下内容:
[人力资源].[部门]
[人力资源].[Department_ext]
我正在尝试使用 Polybase 将数据库 AdventureWorks
迁移到 SQL 服务器数据仓库。
假设我有一个架构 HumanResources
和一个 table Department
在该架构中。
CREATE TABLE [HumanResources].[Department]
(
[DepartmentID] [smallint] NOT NULL,
[Name] [nvarchar](50) NOT NULL,
[ModifiedDate] [datetime] NOT NULL
)
在将数据从 Azure blob 加载到 SQL 服务器数据仓库之前,我需要为 [HumanResources].[Department]
的数据创建一个外部 table。
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]
模式下创建所有外部 table,我应该如何表示原始模式以避免冲突。
我做不到 [ex].[HumanResources].[Department]
,我想避免为外部 table 创建不必要的模式。
有没有简单的表示方法?
我们看到的一种常见模式是简单地将 _ext 添加到 table 名称的末尾。因此,按照您的示例,您将拥有以下内容:
[人力资源].[部门] [人力资源].[Department_ext]