永发信息网

sql存储过程--关于参数传递

答案:5  悬赏:0  手机版
解决时间 2021-08-10 13:42
  • 提问者网友:风月客
  • 2021-08-10 05:43

定义的一个参数.也就是sql语句的主体

@stringsql varchar(5000) = 'select * from UserInfo,ManualSign,DepartInfo,BranchInfo
 where UserInfo.UserId=DepartInfo.PrincipalUser and UserInfo.UserId=ManualSign.UserId and DepartInfo.BranchId=BranchInfo.BranchId'

 

 

这是一个判断:

if( @comeSignTime='' and @goSignTime='' and @BranchInfo='' and @DepartInfo='' and @UserId='')
   begin
   set @strSQL=@stringsql+
   ' and UserInfo.UserName = ' + @UserName
   end

 

最后执行都成功

但是最后查询数据的时候就出错

这是报出的错误

select * from UserInfo,ManualSign,DepartInfo,BranchInfo
 where UserInfo.UserId=DepartInfo.PrincipalUser and UserInfo.UserId=ManualSign.UserId and DepartInfo.BranchId=BranchInfo.BranchId and UserInfo.UserName = admin
消息 207,级别 16,状态 1,第 2 行
列名 'admin' 无效。

 

最佳答案
  • 五星知识达人网友:千杯敬自由
  • 2021-08-10 06:05
你是希望UserInfo.UserName = ‘admin’呢还是UserInfo.UserName = 表.admin
全部回答
  • 1楼网友:有你哪都是故乡
  • 2021-08-10 10:28

把引号加上就好了
' and UserInfo.UserName = ' + ‘’‘+ @UserName+’‘’

  • 2楼网友:神的生死簿
  • 2021-08-10 09:23
列名 'admin' 无效 要与你定义的存储过程的名一样才行。
  • 3楼网友:天凉才是好个秋
  • 2021-08-10 08:25
admin是什么?要么是个变量,要么换在'admin'
  • 4楼网友:一袍清酒付
  • 2021-08-10 07:09
SQL里面拼SQL,呵呵楼主何必弄的这么繁琐呢,如果可以的话你可以把所有的T-SQL发过来看看,或者可以直接发到我QQ,405528077
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯