當使用:SELECT ','+Id FROM dbo.Test FOR XML PATH('')); //這樣讀取的數據雖然是1,2,3,4,但是仍然是xml格式,所以當數據超過2033時候,用sqldatereader或者sqldateadapter讀取數據會截斷xml文件。
此時要:SELECT STUFF((SELECT ','+Id FROM dbo.Test FOR XML PATH('')),1,1,'');//利用stuff函數將xml文件轉換為一個字符串字段。就不會截斷。
注: 在使用它處理數據時有的時候會把一些特殊的符號轉義掉, 如果不需要轉義請用以下方式 參考自(https://blog.csdn.net/wzy87au/article/details/68059540)
SELECT STUFF((SELECT ','+Id FROM dbo.Test FOR XML PATH(''),Type).value('.','NVARCHAR(MAX)'),1,1,'');