slowpoke(慢慢來) : 您说的“多个变量来中转”我也考虑过,但是向这样简单的赋值语句 select top 1 @s=f1 from #t2,如何拆成多个变量@s1 @s2 @s3呢?总不能这样(不知是否可行?)吧: select top 1 @s1=SUBSTRING(f1,1,8000) from #t2 select top 1 @s2=SUBSTRING(f1,8001,16000) from #t2 select top 1 @s2=SUBSTRING(f1,16001,24000) from #t2 局限也大太了。有更好办法吗?
是不是考虑把你的SQL语句串保存在外部文件中,在应用程序层上调用并执行。
try: set textsize 2147483647 select @@textsizeselect * from #t2楼上的方法也不错,在前台和并STRING比在后台好!
f1 ------
SELECT * FROM #t1 WHERE f1 IN ('A01')我需要的是:
f1 -------
A01
set @s = 'exec(select top 1 f1 from #t2)'
exec (@s)
1、语法通不过
2、不符合我的要求,因为#t2中的f1长度会超过8000,而您定义的@s最长只能为8000,我的想法是不能变量来中转。
您说的“多个变量来中转”我也考虑过,但是向这样简单的赋值语句
select top 1 @s=f1 from #t2,如何拆成多个变量@s1 @s2 @s3呢?总不能这样(不知是否可行?)吧:
select top 1 @s1=SUBSTRING(f1,1,8000) from #t2
select top 1 @s2=SUBSTRING(f1,8001,16000) from #t2
select top 1 @s2=SUBSTRING(f1,16001,24000) from #t2
局限也大太了。有更好办法吗?
set textsize 2147483647
select @@textsizeselect * from #t2楼上的方法也不错,在前台和并STRING比在后台好!