临时表 不存在。。。。
ALTER PROCEDURE [dbo].[p_test]
	@TableName nvarchar(50),			--表名
	@Top nvarchar(10),					--数据行
	@Fields nvarchar(4000) = '*',		--字段名(全部字段为*)
	@OrderField nvarchar(4000),			--排序字段(必须!支持多字段)
	@sqlWhere nvarchar(4000) = Null	--条件语句(不用加where)
AS
BEGIN
	Declare @sql nvarchar(4000);
	Declare @sql2 nvarchar(4000);
	Declare @Row nvarchar(20);
	
	if (@Top<>'0')
        set @Row = 'top ' + @Top
	
	set @sql ='select top 1 ' + @Fields + ' into #temp1 from ' + @TableName + ' where '
	set @sql2 = 'select ' + @Row + ' ' + @Fields + ' into #temp2 from ' + @TableName + ' where '
	if (@SqlWhere<>'' or @sqlWhere<>NULL)
	begin
		set @sql = @sql + @sqlWhere + ' and'
		set @sql2 = @sql2 + @sqlWhere + ' and'
	end
	set @sql = @sql + ' datalength(picpath) <> 0 '	
	set @sql2 = @sql2 + ' id not in(select id from #temp1) '	
	exec(@sql)
	Exec(@sql2)
	
	select * from #temp1 UNION ALL select * from #temp2 
	drop table #temp1
	drop table #temp2
END
(1 行受影响)
消息 208,级别 16,状态 0,第 1 行
对象名  '#temp1' 无效。
消息 208,级别 16,状态 0,过程 p_test,第 29 行
对象名  '#temp1' 无效。
(1 行受影响)
                求高手帮看看。。。。
              
------解决方案--------------------变成全局表:
set @sql ='select top 1 ' + @Fields + ' into ##temp1 from ' + @TableName + ' where '
set @sql2 = 'select ' + @Row + ' ' + @Fields + ' into ##temp2 from ' + @TableName + ' where '