SQL Server 中“CREATE TABLE table AS”中的“分发选项”错误

Posted

技术标签:

【中文标题】SQL Server 中“CREATE TABLE table AS”中的“分发选项”错误【英文标题】:"Distribution Option" error in "CREATE TABLE table AS" in SQL Server 【发布时间】:2021-10-03 07:24:21 【问题描述】:

我在使用 CREATE TABLE AS 时遇到了问题。我在数据库中创建了三个表。我打算根据策略编号加入表,并根据加入的数据创建一个新表。

CREATE TABLE [dbo].[New_Customer_Segmentation_Data] AS 
( 
SELECT *
FROM [dbo].[CustomerSegmentation_updated]
INNER JOIN [dbo].[DimLapse]
ON [dbo].[CustomerSegmentation_updated].[PolicyNumber] = [dbo].[DimLapse].[Policy Number] 
INNER JOIN [dbo].[dimclaim]
ON [dbo].[DimLapse].[Policy Number]  = [dbo].[dimclaim].[POLICYNUMBER]
)

它返回错误“'Distribution' 选项必须在“CREATE TABLE AS SELECT”和“CREATE MATERIALIZED VIEW”语句中明确指定。” 谁能指导我解决这个错误?

【问题讨论】:

【参考方案1】:

正如错误消息所说,您必须使用 CTAS 指定 Distributed table design 选项,例如来自文档:

CREATE TABLE [dbo].[FactInternetSales_new]
WITH
(
 DISTRIBUTION = ROUND_ROBIN
 ,CLUSTERED COLUMNSTORE INDEX
)
AS
SELECT  *
FROM    [dbo].[FactInternetSales];

CREATE TABLE AS SELECT

【讨论】:

还有一些关于分发的有用文档:docs.microsoft.com/en-us/azure/synapse-analytics/…

以上是关于SQL Server 中“CREATE TABLE table AS”中的“分发选项”错误的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL Server 中,如何为给定表生成 CREATE TABLE 语句?

SQL Server - 你可以在 CREATE TABLE 中添加字段描述吗?

Access 可以像 SQL Server 一样生成 CREATE TABLE 脚本代码吗?

sql server create table 给字段添加注释说明

您可以将 CREATE TABLE 语句放在 PL/SQL 块中吗?

谁能给个SQL中用CREATE TABLE 创建数据库表的建表事例,急