请问select语句中能不能用变量名(关于存储过程的)?
我的存储过程是这样的:
1.是根据姓名找记录,这样是行得通的
CREATE PROCEDURE find
@name char (20)
AS
select * from table where user_name=@name
go
2.是根据表名查找所以记录,这样就不行
CREATE PROCEDURE findtable
@table_name char (30)
AS
select * from @table_name /*这里老是出错,说@table_name变量没有声明,真是搞不懂*/
go
请教哪位高手知道我的问题:
指定一个我要查的表,通过存储过程的参数来搞定,但是好象只有 from 后面不等跟变量啊,这是为什么啊?
在这里先谢过~~
问题点数:100、回复次数:7Top
1 楼meiqingsong(阿飛)回复于 2005-04-29 18:30:14 得分 40
CREATE PROCEDURE findtable
@table_name char (30)
AS
declare @sql
set @sql = 'select * from' + @table_name --这样既可
exec(@sql)
goTop
2 楼paoluo(一天到晚游泳的鱼)回复于 2005-04-29 18:30:48 得分 40
CREATE PROCEDURE findtable
@table_name char (30)
AS
EXEC('select * from '+@table_name) --用动态语句
go
Top
3 楼xk8156(ShareKey)回复于 2005-04-29 18:32:34 得分 0
多谢了,现在的朋友们真是靠得住Top
4 楼liuxiaoyi666(MSMVP 小猪妹荣誉马甲之八卦兔子)回复于 2005-04-29 18:37:36 得分 20
exec sp_executesql @sqlTop
5 楼xk8156(ShareKey)回复于 2005-04-29 18:44:15 得分 0
meiqingsong(阿飛):
你发的这个有错误啊,说set附近有错,但是我也觉得这样的语法不会有错啊,不知道是怎么搞的
paoluo(一天到晚游泳的鱼):
这个朋友发的就不会有错,是不是存储过程中不能用set语句哦?Top
6 楼xk8156(ShareKey)回复于 2005-04-29 18:54:24 得分 0
哦,我知道了,是你的declare @sql后面没有定义类型,我晕,你真是小马虎
应该是declare @sql char (100)
不过还是真的很感谢你,还有大家!!Top
7 楼meiqingsong(阿飛)回复于 2005-04-29 18:59:55 得分 0
哈哈,不好意思,没仔细检查Top
相关问题
- 如何得到存储过程中 select语句的结果(表名为变量)
- 如何在存储过程中根据INPUT变量,动态的生成SELECT语句(解决就给分)
- 100分,^_^ 存储过程中的sql语句的变量传送
- 存储过程中sql语句如何引用变量?
- 存储过程中怎么处理sql语句中的变量
- 存储过程中字段名为输入变量,那么存储过程update 语句该怎么做?
- 在存储过程的查询语句中select * from 后面的表名是否可以用变量?如:@table1,执行之前给变量@table1赋值。
- 存储过程中,表名是变量,如何执行一个select语句,并把查询的统计值赋给一变量?
- 存储过程中,在查询语句中添加变量的问题
- @a 变量是一句sql语句,怎么用到存储过程中?




