2016-03-21 9 views
1

SQL Server 2012サーバーを使用するPDW AU5を使用しています。私は、データをロードしようとしている空のレプリケートされたテーブルを持っています。私は2つのレコードしかロードしていません。だから、私はやっている:複数の行をSQL​​ Serverの並列データウェアハウステーブルに挿入する方法

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

オンラインでは、これは動作するはずです。ただし、PDWは以下のエラーをスローします。Parse error at line: 4, column: x: Incorrect syntax near ','.

このエラーが参照しているコンマは、最初のタプルの後のものです。 私は何が間違っていますか? INSERT INTOを介して複数の行を挿入するのはAU5で許可されていませんか?

+0

これは動作するはずです!私はこのパターンを何度も使ってきました。 – FLICKER

答えて

3

INSERT INTOためのMSDNのドキュメントには、パラレル・データWarehousとAzureのSQLデータウェアハウスが決定的に残念ながら、複数のVALUESタプルをサポートしていない通常のSQL Serverに比べて、挿入のために別の構文を使用していることを述べている: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 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' 

(最後の行は、を持っていない:あなたがそうのようにそれをハックできるよう、それは、INSERT INTO [...] SELECT [..]構文をサポートしていないことに注意してください式)

+0

私は 'ALL 'の近くで'誤った構文をしています.'エラー –

+0

ああ、私はそれを得ました。最後の行は 'UNION ALL'と'; 'の末尾になければなりません。 –

+1

@AlexeyStrakhチップありがとう、私私の答えが修正されました。 – Dai

関連する問題