使用下面的代码,我收到以下错误:
XQuery [nodes()]: The XQuery syntax 'union' is not supported.
DECLARE @input XML =
(我正在尝试输入该字符串的完整 XML,但它没有在这里进行翻译(被截断)。如果我选择其中的一部分,它甚至会被截断。我知道这是回答问题的关键,但也许有人可以解释错误,我可以调查这个变量字符串)??
CREATE TABLE #Fields
(F1RowID int identity(1,1),GroupID int,TableID int,FieldName nvarchar(50)
,FieldValue nvarchar(50),OldFieldValue nvarchar(50),ExcludeField bit)
INSERT INTO #Fields (FieldName,FieldValue,TableID,ExcludeField)
SELECT FieldName = C.value('local-name(.)', 'varchar(50)'),
FieldValue = C.value('(.)[1]', 'varchar(50)') ,
TableID = 1,ExcludeField = 0 FROM @input.nodes
('/data/CSNPay|CSNHistoryGroup/CSNPay|CSNHistory/*') AS T(C)
最佳答案
SQL Server 不支持 XQuery 的联合运算符 |
。如果各个子查询不返回重叠的结果,那么您实际上并不需要基于集合的联合功能:只需将一个序列放在一起即可。否则,您将不得不处理重复项。
FROM @input.nodes('(/data/CSNPay, CSNHistoryGroup/CSNPay, CSNHistory/*)') AS T(C)
我不确定这个查询是否真正按照您的预期进行——您确定各个路径(有些从根开始,有些从当前上下文开始)吗?
关于sql-server - "XQuery [nodes()]: The XQuery syntax ' 联合 ' is not supported.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37660536/