求教在调用一个存储过程时出现的错误——对象名未知
昨天写了一个通用的分页存储过程,在查询分析器中执行一点问题没有,但是在程序中调用却出现问题:
"对象名 '#TMP_Table_10042007103704717' 无效。"
求教各位大侠,谢过了。
该存储过程用法示例:execute GetRecordFromPage 'select * from syscolumns',10,50 --从第10条记录开始取50条记录
存储过程代码如下:
CREATE PROCEDURE GetRecordFromPage
@strSql as nvarchar(2000) = null, --要查询语句如 Select top 30 * from orders
@startRow as int = null, --从其开始的从零开始的记录号
@maxRows as int = null --要检索的最大记录数
AS
DECLARE @stopRow as int
declare @dt datetime
declare @tbtmp varchar(50)
declare @tbtmpout varchar(50)
set @dt=getdate() --获取当前时间,用于建立临时表
--用于建立查询表
set @tbtmp = 'Table_' + replace(replace(convert(varchar,@dt,13),' ',''),':','')
--用于建立查询表临时表
set @tbtmpout = '#TMP_' + @tbtmp
--select @dt,@tbtmp,@tbtmpout
set @stopRow = @startRow + @maxRows
set @strSql = N' Select top ' + CAST(@StopRow as nvarchar(9)) + '*, IDENTITY(int,1,1) AS TempIDKey_Num '
+ ' INTO ' + @tbtmpout
+ ' FROM( ' + @strSql + ') ' + @tbtmp
+ '; Select * From ' + @tbtmpout +' Where TempIDKey_Num>=' + CAST(@StartRow as nvarchar(9))
execute (@strSql)
GO