存储过程问题 SQLServer问题!
setANSI_NULLSONsetQUOTED_IDENTIFIERONGOALTERprocedure[dbo].[Corss]@strTabNameasvarcha...
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[Corss]
@strTabName as varchar(50),
@strCol as varchar(50),--字段名称
@strGroup as varchar(50),--分组字段
@strNum as varchar(50), --被统计字段
@strSum as varchar(10)='Sum' --运算方式
AS
declare @strsql as varchar(1000),@strTmpCol as varchar(100)
EXECUTE('DECLARE corss_cursor CURSOR FOR SELECT DISTINCT'+@strCol+'from'+@strTabName+'for read only')--生成游标
begin
set nocount ON
set @strsql='select'+@strGroup+','+@strSum+'('+@strNum+')AS['+@strNum+']'--查询前半段
Open corss_cursor
while(0=0)
begin
FETCH NEXT FROM corss_cursor --遍历游标,将列头信息放入变量@strTmpCol
INTO @strTmpCol
if(@@fetch_status<>0)break
SET @strsql=@strsql+','+@strSum+'(CASE'+@strCol+'WHEN'+@strTmpCol+'THEN'+@strNum+'ELSE Null END)AS['+@strTmpCol+']'--构造查询
end
set @strsql=@strsql+'from'+@strTabName+'group by'+@strGroup--查询结尾
EXEC(@strsql)
if @@error<>0 return @@error--如果出错,返回错误代码
Close corss_cursor
DEALLOCATE corss_cursor return 0--释放游标,返回0表示成功
end
这是我间的存储过程 在系统中调用的时候 说游标不存在 是怎么回事啊!急在线等 展开
set QUOTED_IDENTIFIER ON
GO
ALTER procedure [dbo].[Corss]
@strTabName as varchar(50),
@strCol as varchar(50),--字段名称
@strGroup as varchar(50),--分组字段
@strNum as varchar(50), --被统计字段
@strSum as varchar(10)='Sum' --运算方式
AS
declare @strsql as varchar(1000),@strTmpCol as varchar(100)
EXECUTE('DECLARE corss_cursor CURSOR FOR SELECT DISTINCT'+@strCol+'from'+@strTabName+'for read only')--生成游标
begin
set nocount ON
set @strsql='select'+@strGroup+','+@strSum+'('+@strNum+')AS['+@strNum+']'--查询前半段
Open corss_cursor
while(0=0)
begin
FETCH NEXT FROM corss_cursor --遍历游标,将列头信息放入变量@strTmpCol
INTO @strTmpCol
if(@@fetch_status<>0)break
SET @strsql=@strsql+','+@strSum+'(CASE'+@strCol+'WHEN'+@strTmpCol+'THEN'+@strNum+'ELSE Null END)AS['+@strTmpCol+']'--构造查询
end
set @strsql=@strsql+'from'+@strTabName+'group by'+@strGroup--查询结尾
EXEC(@strsql)
if @@error<>0 return @@error--如果出错,返回错误代码
Close corss_cursor
DEALLOCATE corss_cursor return 0--释放游标,返回0表示成功
end
这是我间的存储过程 在系统中调用的时候 说游标不存在 是怎么回事啊!急在线等 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询