首页 新闻 赞助 找找看

求一sql2000存储过程的解决方案

0
悬赏园豆:100 [已关闭问题]
<P><STRONG>SQL2000&nbsp;&nbsp; 里</STRONG>&nbsp;&nbsp; <BR>&nbsp; 我想实现这样的效果,设计一个存储过程,其中用来接收前台传来的列名。可能有值为</P> <P>A,B,C...个数不确定,也就是说新生成的列的个数是不确定的&nbsp;&nbsp;&nbsp; <BR>&nbsp; 我的意思简单化就是&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; select&nbsp; @参数1,as @参数2,@参数3,...&nbsp;&nbsp; from&nbsp;&nbsp; 表名&nbsp;&nbsp; <BR>(说明:各列的数据在数据不是现成的,是需加上条件进行多表查询才能得到,第一列对应的数据的查询条件各不一样,得借助传进来的其它参数才能完成查询)<BR>&nbsp; <BR>但是as&nbsp;&nbsp; 后面好像不支持用变量..&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; <STRONG>应该怎么写能实现</STRONG>??&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp; <BR>&nbsp; Help!! </P>
问题补充: 更正:每一列对应的数据的查询条件各不一样,得借助传进来的其它参数才能完成查询
小胜的主页 小胜 | 初学一级 | 园豆:115
提问于:2008-08-03 16:56
< >
分享
其他回答(3)
0
既然要传这么多东西,而且基本上就是在拼凑SQL语句,那又何必要用存储过程? 直接写一个类,用这个类来组装SQL语句,这样不是更好更方便?
电机拖动 | 园豆:1295 (小虾三级) | 2008-08-03 17:45
0
=.= 说白了 一个变量就是一个只查询 这要存储过程搞什么
小眼睛老鼠 | 园豆:2731 (老鸟四级) | 2008-08-03 18:31
0
declare @sql varchar(8000); set @sql = 'select '+@columnName+' as ' + @columnAliasName + ' from ' + @tableName + ' where ' + @condition; exec(@sql)
玉开 | 园豆:8822 (大侠五级) | 2008-08-04 10:39
0
我觉得有两种方法可以选择下,一种是在程序里面拼接sql,然后整个Where传到存储过程;另外一种是把各个参数都一个一个写传到存储过程再拼接,当然也可以当作是一个参数传进去,其中包括许多个参数,用某个特定的字符分隔就可以了。 总之都是需要拼接sql语句的,最后,要记得过滤注入!希望能对楼主有帮助!
启程 | 园豆:570 (小虾三级) | 2008-08-15 23:53
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册