首页 > 解决方案 > 仅当 SQL 数据仓库中不存在时,如何添加分区边界?

问题描述

我正在使用 Azure SQL 数据仓库 Gen 1,我创建了一个这样的分区表

CREATE TABLE [dbo].[StatsPerBin1](
[Bin1] [varchar](100) NOT NULL,
[TimeWindow] [datetime] NOT NULL,
[Count] [int] NOT NULL,
[Timestamp] [datetime] NOT NULL)
WITH
(
    DISTRIBUTION = HASH ( [Bin1] ),
    CLUSTERED INDEX([Bin1]),
    PARTITION
    (
        [TimeWindow] RANGE RIGHT FOR VALUES ()
     )
)

只有在没有这样的边界时,我应该如何拆分分区?

首先我想如果我可以通过表名获取分区边界,那么我可以编写一个 if 语句来确定是否添加分区边界。

但是我找不到将表与其对应的分区值相关联的方法,所有分区的分区值都可以通过

SELECT * FROM sys.partition_range_values

但它只包含 function_id 作为标识符,我不知道如何加入其他表,以便我可以通过表名获取分区边界。

标签: azure-sqldwsql-data-warehouse

解决方案


您是否尝试过加入sys.partition_range_values视图sys.partition_functions

当然,我们无法在SQL DW中创建分区函数,但该视图似乎仍受支持。


推荐阅读