sql 存储过程 语法错误

USEWebMailDBGOCREATEPROCP_PageView@FieldListvarchar(2000),--显示的字段@TabNamevarchar(200)... USE
WebMailDB
GO
CREATE PROC P_PageView
@FieldList varchar(2000),--显示的字段
@TabName varchar(200),--表明
@StrWhere varchar(2000),--查询条件 注意:不带where
@StrOrder varchar(2000),--排序方式 1:正序2:倒序
@FieldOrder varchar(2000),--排序字段
@PageSize int,--每页显示的条数
@PageIndex int,--当前页
@Counts int output,--返回总条数
@PageCount int output--返回总页数

AS

IF ISNULL(@TabName,'')='' OR ISNULL(@FieldList,'')='' OR
@StrOrder<1 OR @StrOrder>2 OR @Counts <0 OR @PageIndex<0
BEGIN
--PRINT('ERR_00')
RETURN
END

IF ISNULL(@StrWhere,'')!=''
BEGIN
SET @StrWhere='where '+ @StrWhere
SET @Counts='SELECT COUNT(*)' +'FROM '+@TabName+@StrWhere
END
ELSE
BEGIN
SET @StrWhere=@StrWhere
END

DECLARE @StrSql varchar(8000)
DECLARE @SortType varchar(200)

IF @Counts>0
BEGIN
SET @PageCount=CEILING(@Counts/@PageSize)
IF ISNULL(@FieldOrder,'')!=''
BEGIN
IF @StrOrder=1
BEGIN
@SortType='Order By '+@FieldOrder--这里提示出错
END
IF @StrOrder=2
BEGIN
@SortType='Order By '+@FieldOrder+' DESC'--这里提示出错
END
END

IF @PageIndex=1 OR @PageIndex>=@PageCount
BEGIN
IF @PageIndex=1
BEGIN
SET @StrSql='SELECT TOP '+STR(@PageSize)+''+@FieldList+'FROM '+@TabName+ @StrWhere
+@SortType
END
IF @PageIndex>=@PageCount
BEGIN
SET @StrSql='SELECT TOP '+STR(@PageSize)+''+@FieldList +'FROM('+'SELECT TOP'+STR(ABS(@PageSize*@PageIndex-@Counts-@PageSize))
+@TabName+ @StrWhere+@SortType
END
END
END
EXEC(@StrSql)
PRINT(@StrSql)
go

错误提示:
消息 102,级别 15,状态 1,过程 P_PageView,第 44 行
'@SortType' 附近有语法错误。
消息 102,级别 15,状态 1,过程 P_PageView,第 48 行
'@SortType' 附近有语法错误。
消息 156,级别 15,状态 1,过程 P_PageView,第 66 行
关键字 'EXEC' 附近有语法错误。
展开
 我来答
百度网友ef2ed3d99
2014-03-10 · 超过71用户采纳过TA的回答
知道小有建树答主
回答量:182
采纳率:0%
帮助的人:133万
展开全部
在 第一个AS后加:
declare @SortType varchar(50)
百度网友4b68195
2014-03-09 · TA获得超过1520个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1722万
展开全部
没有声明@SortType变量
追问
我已经找到了  少了个SET
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式