首页 新闻 会员 周边 捐助

2005mssqlserver存储过程

0
悬赏园豆:10 [已解决问题] 解决于 2013-01-26 13:44

特别郁闷2005里写的存储过程怎么解决字符串长度问题?

存储过程内容

ALTER PROCEDURE [dbo].[GetPageDataOutRowPageCount]
(
@PageIndex int = 1,--当前页数
@PageSize int = 4,--每页大小
@NowPage int = 1,--根据传入栏目id要加载当前页的数据
@RowCount int output,--总行数(传出参数)
@PageCount int output--总页数(传出参数)
)
AS
begin
DECLARE @sql NVARCHAR(225),@sqlCount NVARCHAR(225)
select @RowCount =COUNT(FCaseChildId),@PageCount=CEILING((COUNT(FCaseChildId)+0.0)/@PageSize) FROM TCaseContent where FParentsId=@NowPage
SET @sql='SELECT TOP'+str(@PageSize)+' * FROM TCaseContent where FParentsId='+str(@NowPage)+'and FCaseChildId not in(select top '+str((@PageIndex-1)*@PageSize) +' FCaseChildId from TCaseContent where FParentsId='+str(@NowPage)+' order by FImageUpTime desc ) order by FImageUpTime desc'
print @sql
EXEC(@sql)
end

 

编译器生成的

SELECT TOP         2 * FROM TCaseContent where FParentsId=         3and FCaseChildId not in(select top          2 FCaseChildId from TCaseContent where FParentsId=         3 order by FImageUpTime desc ) order by FImageUpTime d

 

这一看最后的desc就没了  但是在存储过程里去掉几个空格  语句能正确执行  

 那么像SELECT TOP         2 这里生成的空格明显多余这可以用LTRIM去掉 长度限制怎么解决?

谢谢 

~峰~的主页 ~峰~ | 初学一级 | 园豆:120
提问于:2013-01-26 11:44
< >
分享
最佳答案
0

NVARCHAR(225)  这个长度再定义的长一点

收获园豆:10
chenping2008 | 大侠五级 |园豆:9836 | 2013-01-26 13:05

我哭了。。。呵呵,我自己限制了长度。。。我居然忘了。。。。写东西浮躁,一赶时间就。。。。。。。谢谢

~峰~ | 园豆:120 (初学一级) | 2013-01-26 13:44
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册