看看创建存储过程的语句有什么问题?

lily0000000 2003-07-14 04:40:47
CREATE PROCEDURE List_Report
(
@PageNumber int,
@RecordNumber int,
@Type varchar
)
AS
declare @tem1 varchar(10),@tem2 varchar(10),@tem3 varchar(50)
set @tem1=@RecordNumber
set @tem2=@RecordNumber*@PageNumber
set @tem3=@Type
exec("select top "+@tem1+" * from Briefing where
ID not in (select top "+@tem2+" ID from Briefing where typename="+@tem3+" order by UploadTime)
and typename="+@tem3+" order by UploadTime")
GO


我在asp.net中执行时总提示在‘order’附件语法有错误。应该是@tem3参数的传递问题。但这是个varchar型字段,参数也是这个类型,怎么会不对呢?
...全文
49 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lily0000000 2003-07-17
  • 打赏
  • 举报
回复
结帖吧
lily0000000 2003-07-15
  • 打赏
  • 举报
回复
为什么要这么做呢?
emayongxiang 2003-07-15
  • 打赏
  • 举报
回复
第一层用一个',
第二层用两个''
第三层用四个''''

第一层加第二层共三个'''
lily0000000 2003-07-15
  • 打赏
  • 举报
回复
可是,我还要问一下CrazyFor(蚂蚁) () ,为什么要用三个'呢?
lily0000000 2003-07-15
  • 打赏
  • 举报
回复
好了,解决了
lily0000000 2003-07-15
  • 打赏
  • 举报
回复
to CrazyFor(蚂蚁) ( ):
你的语法看起来是对的,我也这样写过,运行时是不提示错误了,可是数据库中明明有匹配记录,就是一条记录也查询不出来。

to pengdali(大力 V2.0) ( ) :
你的语法有问题,第二层括号中用的是单引号,但第一层中用"',其实这两层应该是一样的吧

to sdhdy(大江东去...) ( ):
你写的语句在传递@tem3时用的是两层"(双引号)吗?这样好像不对噢
sdhdy 2003-07-14
  • 打赏
  • 举报
回复
CREATE PROCEDURE List_Report
(
@PageNumber int,
@RecordNumber int,
@Type varchar(50)
-------------------------^^^^^^
)
AS
declare @tem1 varchar(10),@tem2 varchar(10),@tem3 varchar(50)
set @tem1=@RecordNumber
set @tem2=@RecordNumber*@PageNumber
set @tem3=@Type
exec('select top '+@tem1+' * from Briefing where
ID not in (select top '+@tem2+' ID from Briefing
where typename='+''''+@tem3+''''+' order by UploadTime)
and typename='+''''+@tem3+''''+' order by UploadTime')
GO
pengdali 2003-07-14
  • 打赏
  • 举报
回复
CREATE PROCEDURE List_Report
(
@PageNumber int,
@RecordNumber int,
@Type varchar
)
AS
declare @tem1 varchar(10),@tem2 varchar(10),@tem3 varchar(50)
set @tem1=@RecordNumber
set @tem2=@RecordNumber*@PageNumber
set @tem3=@Type
exec('select top '+@tem1+' * from Briefing where
ID not in (select top '+@tem2+' ID from Briefing where typename='+@tem3+' order by UploadTime)
and typename='''+@tem3+''' order by UploadTime')
GO
CrazyFor 2003-07-14
  • 打赏
  • 举报
回复
CREATE PROCEDURE List_Report
(
@PageNumber int,
@RecordNumber int,
@Type varchar(50)
-------------------------^^^^^^
)
AS
declare @tem1 varchar(10),@tem2 varchar(10),@tem3 varchar(50)
set @tem1=@RecordNumber
set @tem2=@RecordNumber*@PageNumber
set @tem3=@Type
exec('select top '+@tem1+' * from Briefing where
ID not in (select top '+@tem2+' ID from Briefing where typename='''+@tem3+''' order by UploadTime)
and typename='''+@tem3+''' order by UploadTime')
GO

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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