У меня точно такой же запрос. Работает на версии SSMS 17.1, но не на 17.3.
IF OBJECT_ID('tempdb..#Orders','U') IS NOT NULL
DROP TABLE #Orders
-- DDL and sample data for UNPIVOT Example 1
CREATE TABLE #Orders
(
Orderid INT IDENTITY,
GiftCard INT,
TShirt INT,
Shipping INT
)
INSERT INTO #Orders
SELECT 1, NULL, 3
UNION ALL
SELECT 2, 5, 4
UNION ALL
SELECT 1, 3, 10
SELECT * FROM #Orders
SELECT
OrderID, ProductName, ProductQty
FROM
#Orders
CROSS APPLY
(VALUES ('GiftCard', GiftCard), ('TShirt', TShirt),
('Shipping', Shipping)) x (ProductName, ProductQty)
WHERE
ProductQty IS NOT NULL
DROP TABLE #Orders
Это работает без проблем на 17.1. Если тот же запрос выполняется на 17.3, возвращается следующая ошибка
Ошибка синтаксического анализа в строке: 16, столбце: 14: неверный синтаксис рядом с '('
Единственное отличие состоит в том, что версия 17.3 SSMS находится на виртуальной машине в Azure.
В остальном они точно такие же.
Когда я исследую причину, я получаю 100% результатов для проблем с подключением, что не так.
select @@version
на каждой версии SQL Server и опубликуйте ее здесь. - person wBob   schedule 14.12.2017Microsoft SQL Server 2012 (SP3) (KB3072779) - 11.0.6020.0 (X64) Oct 20 2015 15:36:27 Copyright (c) Microsoft Corporation Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
, а версия, в которой запрос не работает, —Microsoft SQL Azure (RTM) - 12.0.2000.8 Nov 29 2017 09:37:51 Copyright (C) 2017 Microsoft Corporation
. - person jpf5046   schedule 14.12.2017cross apply
таким же образом? - person jpf5046   schedule 14.12.2017