首页 > 数据库技术 > 详细

TSQL--如何突破PRINT的8000大限

时间:2014-01-21 17:18:21      阅读:418      评论:0      收藏:0      [点我收藏+]

相信很多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(‘‘)

执行截图:

bubuko.com,布布扣

黎明前总是最黑暗的,看到这个形同乱码的XML不要激动,勇敢滴重击一下

bubuko.com,布布扣

这是不是你梦寐以求的东东啦!

在SSMS中"工具">>"选项"下,可以设置XML的大小

bubuko.com,布布扣

 

骚年,不用再为马赛克烦恼啦,心中无码,天下无码!

盗个妹子来养眼,感谢神吧!

bubuko.com,布布扣

TSQL--如何突破PRINT的8000大限

原文:http://www.cnblogs.com/TeyGao/p/3527587.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!