没错,我用查询分析器执行了一下过程,就出现了上面的错误,存储过程如下:
CREATE PROCEDURE sp_column_first
@cata_id int,
@ret_img_result varchar(50) outputASSET NOCOUNT ON
declare @auto_id int,
@ret_img varchar(50)DECLARE folder_img_cursor CURSOR FOR
select top 8 auto_id from tbl_auto where auto_id in(
select auto_id from tbl_auto_cata where cata_id = @cata_id
) order by auto_date descOPEN folder_img_cursorset @ret_img = ''
set @ret_img_result = ''
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
WHILE @@FETCH_STATUS = 0
BEGIN
IF exists(SELECT auto_id FROM tbl_img WHERE auto_id = @auto_id)
SET @ret_img = 'a'
ELSE
SET @ret_img = '0'
SET @ret_img_result = @ret_img_result + @ret_img
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
ENDRETURN @ret_img_resultCLOSE folder_img_cursor
DEALLOCATE folder_img_cursor
GO注:@ret_img = 'a' 只是个试验,这个参数一定要字符型的才行。
CREATE PROCEDURE sp_column_first
@cata_id int,
@ret_img_result varchar(50) outputASSET NOCOUNT ON
declare @auto_id int,
@ret_img varchar(50)DECLARE folder_img_cursor CURSOR FOR
select top 8 auto_id from tbl_auto where auto_id in(
select auto_id from tbl_auto_cata where cata_id = @cata_id
) order by auto_date descOPEN folder_img_cursorset @ret_img = ''
set @ret_img_result = ''
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
WHILE @@FETCH_STATUS = 0
BEGIN
IF exists(SELECT auto_id FROM tbl_img WHERE auto_id = @auto_id)
SET @ret_img = 'a'
ELSE
SET @ret_img = '0'
SET @ret_img_result = @ret_img_result + @ret_img
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
ENDRETURN @ret_img_resultCLOSE folder_img_cursor
DEALLOCATE folder_img_cursor
GO注:@ret_img = 'a' 只是个试验,这个参数一定要字符型的才行。
@cata_id int,
@ret_img_result varchar(50) outputASSET NOCOUNT ON
declare @auto_id int,
@ret_img varchar(50)DECLARE folder_img_cursor CURSOR FOR
select top 8 auto_id from tbl_auto where auto_id in(
select auto_id from tbl_auto_cata where cata_id = @cata_id
) order by auto_date descOPEN folder_img_cursorset @ret_img = ''
set @ret_img_result = ''
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
WHILE @@FETCH_STATUS = 0
BEGIN
IF exists(SELECT auto_id FROM tbl_img WHERE auto_id = @auto_id)
SET @ret_img = 'a'
ELSE
SET @ret_img = '0'
SET @ret_img_result = @ret_img_result + cast(@ret_img as varchar(10))
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
ENDRETURN @ret_img_resultCLOSE folder_img_cursor
DEALLOCATE folder_img_cursor
@cata_id int,
@ret_img_result varchar(50) outputASSET NOCOUNT ON
declare @auto_id int,
@ret_img varchar(50)DECLARE folder_img_cursor CURSOR FOR
select top 8 auto_id from tbl_auto where auto_id in(
select auto_id from tbl_auto_cata where cata_id = @cata_id
) order by auto_date descOPEN folder_img_cursorset @ret_img = ''
set @ret_img_result = ''
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
WHILE @@FETCH_STATUS = 0
BEGIN
IF exists(SELECT auto_id FROM tbl_img WHERE auto_id = @auto_id)
SET @ret_img = 'a'
ELSE
SET @ret_img = '0'
SET @ret_img_result = @ret_img_result + @ret_img
FETCH NEXT FROM folder_img_cursor
INTO @auto_id
END--RETURN @ret_img_result 这句出错,也没必要加上这佑.CLOSE folder_img_cursor
DEALLOCATE folder_img_cursor
GO