SQL NVARCHAR和VARCHAR限制總之,我有一個(gè)很大的(不可避免的)動(dòng)態(tài)SQL查詢。由于選擇標(biāo)準(zhǔn)中的字段數(shù),包含動(dòng)態(tài)SQL的字符串增長超過4000個(gè)字符?,F(xiàn)在,我知道有一個(gè)4000最大值設(shè)置NVARCHAR(MAX),但查看Server Profiler中執(zhí)行的SQL語句DELARE @SQL NVARCHAR(MAX);SET @SQL = 'SomeMassiveString > 4000 chars...';EXEC(@SQL);GO似乎工作(???),對于另一個(gè)同樣大的查詢,它會拋出一個(gè)與此4000限制(!?)相關(guān)的錯(cuò)誤,它基本上修剪了這個(gè)4000限制之后的所有SQL并且給我留下了語法錯(cuò)誤。盡管這樣的探查,它表示在這個(gè)動(dòng)態(tài)的SQL查詢?nèi)ǎ。浚?。究竟發(fā)生了什么,我應(yīng)該將這個(gè)@SQL變量轉(zhuǎn)換為VARCHAR并繼續(xù)使用它嗎?謝謝你的時(shí)間。PS。能夠打印超過4000個(gè)字符來查看這些大查詢也是很好的。以下限制為4000SELECT CONVERT(XML, @SQL);PRINT(@SQL);還有其他很酷的方式嗎?
SQL NVARCHAR和VARCHAR限制
江戶川亂折騰
2019-08-06 16:55:28