| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1331 人关注过本帖
标题:[求助]PROCEDURE
取消只看楼主 加入收藏
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
 问题点数:0 回复次数:7 
[求助]PROCEDURE
我写的存储过程是这样
CREATE PROCEDURE Roles
@length varchar(50),
@tablename varchar(50),
@role varchar(50)
AS
BEGIN
Declare @SqlStr varchar(100)
SET
@SqlStr='SELECT TOP '+@length+' * FROM '+@tablename+' where Role='+@role+'
EXEC (@SqlStr)
END
可以创建
但是运行的时候就出错了
exec Roles '10','login','Teacher'
显示的错误是:
服务器: 消息 207,级别 16,状态 3,行 1
列名 'Teacher' 无效。
我觉得SQL语句运行的时候应该是这样了所以错了
Select top 10 * from login where Role=Teacher
我想问下大家@role这个参数应该怎么传???
搜索更多相关主题的帖子: PROCEDURE role Role varchar 
2006-12-29 21:20
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
得分:0 
我试试

2006-12-29 21:31
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
得分:0 
不对呀。那样根本就没赋值了

2006-12-29 21:33
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
得分:0 
没看清你的改正不好意思,如果我后面还有条件呢
怎么些
比方说我后面有order by newid()

2006-12-29 21:34
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
得分:0 
如果后面有条件呢
CREATE PROCEDURE Roles
@length varchar(50),
@tablename varchar(50),
@role varchar(50)
AS
BEGIN
Declare @SqlStr varchar(100)
SET
@SqlStr='SELECT TOP '+@length+' * FROM '+@tablename+' where Role='+@role+' ORDER BY NEWID()'
EXEC (@SqlStr)
END

2006-12-29 21:41
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
得分:0 
哦,没意义了呀,我看看
那个问题解决了
应该是这样
@SqlStr='SELECT TOP '+@length+' * FROM '+@tablename+' where Role='''+@testid+''' ORDER BY NEWID()'

2006-12-29 21:51
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
得分:0 
好象有意义呀,我选前几条呀,ORDER BY NEWID()又不可以选前几条

2006-12-29 21:53
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
收藏
得分:0 

创建是没错,但是赋值的时候就会出错了。


2006-12-29 21:55
快速回复:[求助]PROCEDURE
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012642 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved