gpt4 book ai didi

sql-server - 如何在 SQL Server 并行数据仓库表中插入多行

转载 作者:行者123 更新时间:2023-12-03 09:35:42 28 4
gpt4 key购买 nike

我在带有 SQL Server 2012 服务器的 PDW AU5 上。我有一个空的复制表,我正在尝试将数据加载到其中。我只加载 2 条记录。所以,我在做:

INSERT INTO dbo.some_table
(Col1, Col2, Col3)
VALUES
(1, 'x', 'a'),
(2, 'y', 'b')

从网上的书籍来看,这应该有效。 (它适用于 SMP。)但是,PDW 抛出一个错误说明: Parse error at line: 4, column: x: Incorrect syntax near ','.
此错误所指的逗号是第一个元组之后的逗号。
我究竟做错了什么? AU5 上不允许通过 INSERT INTO 插入多行吗?

最佳答案

MSDN 上的文档 INSERT INTO指出并行数据仓库和 Azure SQL 数据仓库使用不同的插入语法与正常 SQL Server 相比,后者关键不支持多个 VALUES不幸的是元组:https://msdn.microsoft.com/en-us/library/ms174335.aspx

-- Azure SQL Data Warehouse and Parallel Data Warehouse
INSERT INTO [ database_name . [ schema_name ] . | schema_name . ] table_name
[ ( column_name [ ,...n ] ) ]
{
VALUES ( { NULL | expression } [ ,...n ] )
| SELECT <select_criteria>
}
[ OPTION ( <query_option> [ ,...n ] ) ]
[;]

但是请注意,它确实支持 INSERT INTO [...] SELECT [..]语法,所以你可以像这样破解它:
INSERT INTO foo ( x, y, z )
SELECT 1, 'x', 'a' UNION ALL
SELECT 2, 'y', 'b' UNION ALL
SELECT 3, 'z', 'c' UNION ALL
SELECT 4, 'a', 'd' UNION ALL
SELECT 5, 'b', 'e'

(最后一行没有 UNION ALL 表达式)

关于sql-server - 如何在 SQL Server 并行数据仓库表中插入多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36141006/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com