我的SQL语句怎么会这样???

huejim 2005-06-18 03:11:46
/*--实现分页的通用存储过程
--感谢csdn.net邹建 --*/
ALTER Proc fenPage
@QueryStr nvarchar(4000), --表名、视图名、查询语句
@PageSize int=10, --每页的大小(行数)
@PageCurrent int=1, --要显示的页
@FdShow nvarchar (4000)='', --要显示的字段列表,如果查询结果不需要标识字段,需要指定此值,且不包含标识字段
@FdOrder nvarchar (1000)='' --排序字段列表
as
set nocount on
declare @FdName nvarchar(250) --表中的主键或表、临时表中的标识列名
,@Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号
,@Obj_ID int --对象ID
,@rtnValue int --返回记录总值
--表中有复合主键的处理
declare @strfd nvarchar(2000) --复合主键列表
,@strjoin nvarchar(4000) --连接字段
,@strwhere nvarchar(2000) --查询条件

select @Obj_ID=object_id(@QueryStr)
,@FdShow=case isnull(@FdShow,'') when '' then ' *' else ' '+@FdShow end
,@FdOrder=case isnull(@FdOrder,'') when '' then '' else ' order by '+@FdOrder end
,@QueryStr=case when @Obj_ID is not null then ' '+@QueryStr else ' ('+@QueryStr+') a' end
declare @a int
exec('select '+@a+'=count(*) from '+@QueryStr)


运行后会出现这样的错误:
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: '=' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 1
第 1 行: 'a' 附近有语法错误。

...全文
97 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
huejim 2005-06-20
  • 打赏
  • 举报
回复
哪位大侠知道呀?
huejim 2005-06-20
  • 打赏
  • 举报
回复
我试了,语法检查没错。但是一执行就出现了:
服务器: 消息 214,级别 16,状态 3,过程 sp_executesql,行 29
过程需要参数 '@parameters' 为 'ntext/nchar/nvarchar' 类型。

to libin_ftsafe(子陌红尘) :
怎么办呀?
子陌红尘 2005-06-18
  • 打赏
  • 举报
回复
...

declare @a int

set @QueryStr = N'select @a=count(*) from ' + @QueryStr

exec sp_executesql @QueryStr,'@a int out',@a out

select @a

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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