TSQL--如何突破PRINT的8000大限
相信很多DBA都喜欢干的一件事就是拼SQL语句,我也不例外,但是PRINT只能打印4000的Unicode string或8000的Non-unicode string, 这个蛋疼的限制会导致过长的string被截断,为此不得不改写很多SQL,造成诸多不便!
说多就是眼泪!!!
今晚长夜漫漫,溜达论坛时看到林勇桦的《SQLSERVER PRINT语句的换行》,再次思考如果突破此大限制,突然灵机一动,一个惊天地泣鬼神的大招<XML无上限>被顿悟出来!
假设有以下场景:
DECLARE @SQL NVARCHAR(MAX) SET @SQL=‘‘ SELECT @SQL=@SQL+‘ ‘+name FROM sys.all_columns PRINT @SQL SELECT @SQL
我们会发现PRINT 被截断,而SELECT 出来的语句又不换行,此时换换小清醒口味吧
DECLARE @SQL NVARCHAR(MAX) SET @SQL=‘‘ SELECT @SQL=@SQL+‘ ‘+name FROM sys.all_columns PRINT @SQL SELECT @SQL FOR XML PATH(‘‘)
执行截图:
黎明前总是最黑暗的,看到这个形同乱码的XML不要激动,勇敢滴重击一下
这是不是你梦寐以求的东东啦!
在SSMS中"工具">>"选项"下,可以设置XML的大小
骚年,不用再为马赛克烦恼啦,心中无码,天下无码!
盗个妹子来养眼,感谢神吧!
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。