易截截图软件、单文件、免安装、纯绿色、仅160KB

SQL变量长度

SQL code:

--我有这样一个存储过程。 功能是行转列,现在我生成的动态SQL的长度已经超过了 我定义nvarchar(4000)所以后面很多SQL内容没显示出来,我改用了TEXT但是这个不支持@sql=@sql+字符串 格式。
很迷茫。。。。。

declare @sql nvarchar(4000)
set @sql='select UserName as 姓名'

select @sql=@sql+','+#StrTable2.ProductName+'=isnull(sum(case ProductsID when '''+cast(#StrTable2.id as nvarchar)+''' then Quantity end),0)'
from #StrTable2 order by id

set @sql=@sql+' from #StrTable group by UserID,UserName order by UserID'


varchar(8000)

sql 2000就多定义几个变量
sql 2005就nvarchar(max)

建议使用 sqlserver2005及以上版本。
max类型的变量很好用!

可是我用的就是2000没办法。
多定义几个变量也不行啊。最后一个@SQL变量

引用
varchar(8000)

这个也不行 因为他还是只读了 4000个字符

有人没有哦 这个问题真的比较棘手。

1.如果是sql2005以上版本使用varchar(max).
2.如果是sql2000,那么定义几个变量来存储字符串。最后exec(sql1+sql2+sql3)

还有注意SQl2005 中的varchar(max)不可与varchar(N)相加,这样会将varchar(max).类型转换为varchar(N)类型,同样会有4000字符的限制。


建议用SQL Server 2005

1、可以多个变量 拼接
2、用SQL SERVER 2005



相关问答:

csv文件转换成sql导入到数据库,没有数据为何?

执行的顺序:
1)文件浏览框(选择文件使用)
选择好文件后
点击一个导入按钮的时候 ,把上面上传框里的csv文件以一个ID为文件名,上传到**/**文件夹下
2)读取这个文件夹下的csv的文件,转换成sql
3 ......

sql 存储过程

我要做一个定点事件,是每天晚上12点就把三个表里的信息放入一个表里,我想用存储过程来写,怎么写呢?,那位高手帮帮忙吧,非常感谢!

用户名是唯一的
表A  字段
用户名:Name  ,邮箱:Ema ......

sql 函数问题 - MS-SQL Server / 应用实例

sql我想得到一字符串为:
sldkf|||sdeww
erkv|||rltdk
jemcl|||ligf
就是|||后面的字符有什么函数能得到吗?是在sql语句写的,不是在页面写的,那位高手来指教下,新手,谢谢
晕今天不是写了么

select parsen ......

求一条SQL - MS-SQL Server / 疑难问题

--drop table #T1
--drop table #T2
create Table #T1(ID int,
QueryID nvarchar(20),
ResultID1 nvarchar(20),
ResultID2 nvarchar(20))
create Table #T2(SortNo int,
QueryID nvarchar(20),
ResultID1 nv ......

关于SQL的问题? - MS-SQL Server / 基础类

Id Name Flag
1 张三 1  
2 王五 3
3 张三 1
4 李四 2
5 张三 1
6 李四 2
我想输出的时候变成这样
Id Name Flag
1 张三 1 & ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号