100分求一简单的存储过程,马上结贴

myding008 2005-05-13 04:12:52
CREATE PROCEDURE Man
(
@size int
)
AS

SELECT
TOP @size
ProductID,
ProductName,
xiaotu,
geloujia,
jingpin,
sex

FROM

Products

WHERE
A = 1
AND
B="2"
GO

我想每次取这个变量(@size)条记录,可是这样写老是报错,高人帮我看看错在那
...全文
155 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
myding008 2005-05-13
  • 打赏
  • 举报
回复
语法栓查没错,可一执行就出错。我对存储过程不熟悉,谢谢大家
spirit729 2005-05-13
  • 打赏
  • 举报
回复
GageCSDN(稻草人--http://www.sms-web.net)

正解
baikaishui_0825 2005-05-13
  • 打赏
  • 举报
回复
出现如下错误

名称 ' SELECT TOP 3 ProductID, ProductName, xiaotu, geloujia, jingpin, sex FROM Products WHERE jingpin = 1 AND sex=男 ' 不是有效的标识符。
-------------------
'SELECT TOP 3 ProductID, ProductName, xiaotu, geloujia, jingpin, sex FROM Products WHERE jingpin = 1 AND sex=''男'''
这样的,你的sex字段应该字符串类型的
两个单引号代替一个单引号
myding008 2005-05-13
  • 打赏
  • 举报
回复
谢谢
guanjm 2005-05-13
  • 打赏
  • 举报
回复
你先别执行exec sp_executeSql @sql
先print @sql
那句话先--注释掉
然后把这句SQL,在放到查询分析器执行,没问题,在调
myding008 2005-05-13
  • 打赏
  • 举报
回复
@size变量是是从程序传过来的,没有直接赋值
myding008 2005-05-13
  • 打赏
  • 举报
回复

出现如下错误

名称 ' SELECT TOP 3 ProductID, ProductName, xiaotu, geloujia, jingpin, sex FROM Products WHERE jingpin = 1 AND sex=男 ' 不是有效的标识符。
satans18 2005-05-13
  • 打赏
  • 举报
回复
这么快~
myding008 2005-05-13
  • 打赏
  • 举报
回复
我先试试,OK马上结
GageCSDN 2005-05-13
  • 打赏
  • 举报
回复
ALTER PROCEDURE Man
@size int = 100
AS
DECLARE @SQL varchar(5000)
Set @SQL = '
SELECT
TOP ' + cast(@size as varchar(50)) + '
ProductID,
ProductName,
xiaotu,
geloujia,
jingpin,
sex

FROM

Products

WHERE
A = 1
AND
B="2"
'
exec @SQL
GO
guanjm 2005-05-13
  • 打赏
  • 举报
回复
要换成动态SQL
guanjm 2005-05-13
  • 打赏
  • 举报
回复
这当然错
CREATE PROCEDURE Man
(
@size int
)
AS
declare @sql varchar(4000)
set @sql='
SELECT
TOP '+cast(@size as varchar(10))+'
ProductID,
ProductName,
xiaotu,
geloujia,
jingpin,
sex

FROM

Products

WHERE
A = 1
AND
B=2
'
exec sp_executeSql @sql
GO

28,404

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧