当需要自动化批量执行sql时,如果自定义的字符串为nvarchar(max)长度不够是(当sql长度超过4000时,nvarchar(max)会截断),导致exec (@ddl_sql)执行报错。
如:新建了一个函数,可以传入一个参数,然后自定义的sql会根据参数,连接不同的数据库新建大量表。处理方法可以有如下思路。大致如图:
注:强制类型转换也能将超长的字符串转为长度更长。
大致用法:REPLICATE(convert(nvarchar(max),'a'),20000)
该方法暂时还没想好怎么用到上面那种场景。