0

在我的存储过程中,我有这样的语句

select @cols = STUFF((SELECT distinct ',' + QUOTENAME(Vtype) from VType_tbl
      FOR XML PATH(''), TYPE).value('.', 'NVARCHAR(MAX)')  ,1,1,'')

我不知道这些声明究竟会发生什么?为什么我们使用Stuff andQUOTENAME; forXML PATH

4

2 回答 2

0

stuff 命令删除第一个字符并将其替换为 ''。

探索 stuff string 函数(http://craftydba.com/?p=5397)。

-- This snippet from my blog results in pay attention!
SELECT 
    STUFF('Pay no attention to the man behind the curtain!', 
          4, 3, '') as oz_quote;
于 2013-09-18T19:39:06.870 回答
0

STUFF 函数将一个字符串插入另一个字符串。它在起始位置删除第一个字符串中指定长度的字符,然后将第二个字符串插入到起始位置的第一个字符串中。

句法

STUFF ( character_expression , start , length , replaceWith_expression )

例子

SELECT STUFF('abcdef', 2, 3, 'ijklmn');
GO

结果

艾克姆奈夫

参考

于 2013-09-18T19:41:04.770 回答