请高手帮忙看看这个存储过程的问题!!十万火急!!谢谢!!

jimmykelvin 2012-06-28 09:39:28
ALTER PROCEDURE [dbo].[paysliprole]
(@emp_code varchar(500),
@name varchar(500),
@sffp varchar(500),
@begin varchar(500),
@end varchar(500),
@userid varchar(500)
)

AS
BEGIN
SET IMPLICIT_TRANSACTIONS off

declare @sql varchar(4000),
@where varchar(4000)
set @emp_code=case when @emp_code='' then '' else 'and emp_code like ''%'+@emp_code+'%''' end
set @name=case when @name='' then '' else 'and (chn_name like ''%'+@name+'%'' or eng_name like ''%'+@name+'%'')' end
set @sffp=case when @sffp='false' or @sffp='' then 'and role_id='''+'no'+'''' else '' end
set @userid='and emp_id in (select emp_id from _'+@userid+')'
set @where=@emp_code+@name+@sffp+@userid
set @sql='select * from (select row_number() over(order by emp_code) rownumber,* from v_payslip_role where1=1 '''+@where+''') a where rownumber between @begin and @end)'
print @emp_code
print @name
print @sffp
print @userid
print @begin
print @end
print @where
print @sql

exec (@sql)

END


现在有三个问题,第一是@where老是拼出来会带个引号的,第二是@begin和@end的值赋不到语句中去!
第三个就是运行存储过程的时候会报错
请高手帮我看看,是哪里写的有问题。。谢谢了。。十万火急啊!!
...全文
70 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jimmykelvin 2012-06-28
  • 打赏
  • 举报
回复
谢谢各位了。。问题已经解决。。。
筱筱澄 2012-06-28
  • 打赏
  • 举报
回复
'''+@where+''') 这里引号太多了


'+@where+')
筱筱澄 2012-06-28
  • 打赏
  • 举报
回复
between '+@begin+' and '+@end+')'


后面那个要这么写
wangxianshou 2012-06-28
  • 打赏
  • 举报
回复
拼接字符串很容易出错,笔记本没有环境,明天上班再瞅瞅
1.没细看
2.@begin和@end在你字符串里,你应该拼接
3. 1和2的问题解决,3就OK了
shoppo0505 2012-06-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
'''+@where+''' ==> '+@where 去掉前后各两个引号
[/Quote]
打错了。

'''+@where+''' ==> '+@where +' 去掉前后各两个引号
shoppo0505 2012-06-28
  • 打赏
  • 举报
回复
'''+@where+''' ==> '+@where 去掉前后各两个引号

between @begin and @end)' ==> between ' + @begin + ' and ' + @end + ')'
jimmykelvin 2012-06-28
  • 打赏
  • 举报
回复
木有人帮忙回答下么?

运行exec paysliprole '','','','1','20','admin'
@begin和@end都可以print出来的,但就是运行出来的结果报错“必须声明标量变量@begin”

求救求救。。。

22,302

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧