mssql sqlserver “动态SQL脚本”长度超过8000【SQL SERVER 2008完美解决方案】分享


摘要:
下文讲述sqlserver 2008中动态sql脚本超过8000字符的处理方法分享,如下所示:
实验环境:sql server 2008 R2


在微软sqlserver官方文档中介绍说,使用SP_EXECUTESQL()和NVARCHAR(MAX)可以突破sqlserver执行脚本字符串过大的差异说明,如下例所示:

   declare @sql nvarchar(max)
   set @sql ='print convert(nvarchar(30),getdate())+nchar(13)+nchar(10)   ';

   declare @i int 
   set @i =0
   while @i<1000
   begin 
      set @sql =@sql  +'  convert(nvarchar(30),getdate())+nchar(13)+nchar(10)   ';
   end    
   
  ---输出sql长度
  select len(@sql) as [脚本长度]
   
  exec SP_EXECUTESQL @sql