⑴ ”sql “语句可能有错,运行时提示未声明标量变量StudentNo...
StudentNo= '%" + no + "%' ";
在等号后面使用%的话,不会解释成通配符的,会当成原本的%号的。
要用like的。
至于你说的那个错误:
要么你是在某个地方使用的未定义的StudentNo变量。
或则
你的表里面就没有StudentNo这个字段。
你可以把那天sql语句在数据库中测试一下。
⑵ SQL变量未定义
楼主,拼接后的@sql3是这样的:
select @sql=@sql+', max(case peijianming when '''+ peijianming +''' then convert(decimal(18,4),Peijianbi) else 0 end) as ['+peijianming+']' from ( select distinct peijianming from #1 where huohao in('02B10RIW027Z1','09BN37ML27A00') and isnull(peijianming,'') <> '')
从from开始都没有被包在引号之内。这里有问题吧?
⑶ 一个SQL存储过程,执行报错,声明了提示未声明
where userId=@userid '
问题在这里, 你在存储过程里有@userId, 但是你拼起来的动态SQL里面没有
应该是这样 where userid = ' + @userid
注意if 和Else两句里面都要修改
⑷ SQL 动态Sql问题: SELECT * FROM @DiaryList EXEC ('SELECT * FROM @DiaryList ')
我觉得是你没有声明的原因。如果你是要把一个查询结果放入一个表示表的结构,创建一个临时表。用完后删除就可以了。
⑸ sql 问题 ,我明明已经声明过变量了 ,还老是报错说没有声明 ,
变量的作用域从定义到下一个go就结束了,将多余的go去掉。