针对字符串长度超过8000的处理

Posted adsoft

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了针对字符串长度超过8000的处理相关的知识,希望对你有一定的参考价值。

if (exists (select * from sys.objects where name = ‘up_test‘))
drop proc up_test
go
Create PROC [dbo].[up_test]
as
declare @SQL nvarchar(max), @SQL1 nvarchar(4000), @SQL2 nvarchar(4000), @SQL3 nvarchar(4000),
@SQL4 nvarchar(4000);
set @SQL1 = N‘SQl语句1‘ ;  -- 长度不能超过4000; 
set @SQL2 =‘SQL语句2‘;     -- 长度不能超过4000; 

set @SQL3 =‘SQL语句3‘;     -- 长度不能超过4000; 

set @SQL4 =‘SQL语句4‘;     -- 长度不能超过4000; 

 

set @SQL = concat(@SQL1, @SQL2, @SQL3, @SQL4);
exec SP_EXECUTESQL @SQL;

关于SP_EXECUTESQL 更详尽用法 参见 

https://www.cnblogs.com/lonelyxmas/p/7975445.html
--print len(@sql);
--print @SQL;
--print @sql1;
--print @sql2;
--print @sql3;
--print @sql4;
GO

以上是关于针对字符串长度超过8000的处理的主要内容,如果未能解决你的问题,请参考以下文章

当所需长度<8000 时,TEXT 比 varchar 有啥优势?

insertselectvarchar长度限制

SQLServer数据类型

SQLserver数据类型

T-SQL字符串相加之后被截断的那点事

L2-008. 最长对称子串