标题:[求助]PROCEDURE
只看楼主
joyes
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-11-27
 问题点数:0 回复次数:13 
[求助]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
xu2000
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:51
帖 子:3890
专家分:56
注 册:2006-4-8
得分:0 
@SqlStr='SELECT TOP '+@length+' * FROM '+@tablename+' where Role='+@role

后面不用加'了吧。

我会拿出我全部的钱财,以保你衣食无忧。我会献出我所有的智慧,以助你一帆风顺。我会想到所有的笑语,以令你展眉开颜。我会挤出最长的时间,以使你终生幸福。        [本人原创的结婚宣言]
2006-12-29 21:28
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
xu2000
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:51
帖 子:3890
专家分:56
注 册:2006-4-8
得分:0 
我试过了,好用。

我会拿出我全部的钱财,以保你衣食无忧。我会献出我所有的智慧,以助你一帆风顺。我会想到所有的笑语,以令你展眉开颜。我会挤出最长的时间,以使你终生幸福。        [本人原创的结婚宣言]
2006-12-29 21:39
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
棉花糖ONE
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:32
帖 子:2987
专家分:0
注 册:2006-7-13
得分:0 

用了order by newid(),再用top没意义啊


26403021 sql群 博客 blog./user15/81152/index.shtml
2006-12-29 21:48
xu2000
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:51
帖 子:3890
专家分:56
注 册:2006-4-8
得分:0 
不用语法没错呀。在我的机子上试验也没抱错。

我会拿出我全部的钱财,以保你衣食无忧。我会献出我所有的智慧,以助你一帆风顺。我会想到所有的笑语,以令你展眉开颜。我会挤出最长的时间,以使你终生幸福。        [本人原创的结婚宣言]
2006-12-29 21:51
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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-113061-1-1.html




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

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