找不到Azure数据仓库SELECT n'char'列

时间:2019-09-18 14:34:11

标签: azure-sql-data-warehouse

由于ADW不支持使用标准INSERT ... VALUES语法插入多个记录,因此解决方法是对每个记录执行SELECT .. UNION ALL。

例如:

-- this does work
INSERT INTO Banana.HamburgerTable (UnicodeColumn nvarchar(255)) 
VALUES (n'公');

-- this won't work
INSERT INTO Banana.HamburgerTable (UnicodeColumn nvarchar(255)) 
VALUES (n'公'),
(n'司') ;

-- this should work
INSERT INTO Banana.HamburgerTable 
SELECT n'公' UNION ALL
SELECT n'司'; 

但是实际上第二种语法会返回此错误:

Failed to execute query. Error: Invalid column name 'n'.

为什么来?

1 个答案:

答案 0 :(得分:0)

字符串开头的unicode'n'指示符在select语句中区分大小写,但对插入值不区分大小写。因此,上述声明的正确版本是:

INSERT INTO Banana.HamburgerTable 
SELECT N'公' UNION ALL
SELECT N'司';