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' 附近有语法错误。 展开
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' 附近有语法错误。 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询