Assign/bind for 子句的结果?

Assign/bind the result of for clause?

是否可以将 let $key := //COLNAME 更改为 let $key := {for $k in $keys return <s>{$k},</s>} 之类的内容? {for $k in $keys return <s>{$k},</s>}用的比较多,这样代码会更清晰。

select @sql = @PrimaryKeyXml.query('
let $keys := //COLNAME return
<s>
ALTER TABLE ##keys ADD primary key ({for $k in $keys return <s>{$k},</s>});
</s>').value('.', 'nvarchar(max)')

顺便说一句,SQL Server 2014 xquery 现在有字符串连接功能吗?

有些非常喜欢,是的:

let $key := for $k in $keys return <s>{$k}</s>

(即失去大括号)。

for表达式是一个表达式,它所表示的值可以是一个变量的值。