你用的是局部的临时表,它只在创建它的过程中存在.exec是一个过程,所以exec结束后,临时表就自动删除了,改为全部的临时表吧.
解决方案 »
- ora-00907 缺失右括号?????
- 重復記錄:在某一段時間內多次刷卡只算一次
- 间隔读取数据库记录,如何实现??
- ODBC连接问题,提示:Not associated with a trusted SQLserver connection
- 请问用sql怎么从数据库中获得一个数据库的所有表的名称?
- 存储过程,这个通配符,这样拼,貌似有问题,大神.
- 哪位有先进先出,后进先出,移动平均,加权平均,最后进价的SQL存储过程呀
- 表中的字符类型如何变成日期型
- 数据库索引使用的问题
- 新手提问:如何将Excel中的数据导入SQL SERVER
- T-SQL中有没有类似exit,abort的语句?
- nvarchar字段 如 SQL_Latin1_General_CP1_CI_AS 的排序规则是什么意思?无可用分了。大家发扬一下风格吧 :)
--传递参数
@collist varchar(1000),--传入的需要计算的字符串,格式为"A,B,C,"
@TableNameA varchar(1000),--需要计算的第一张表
@TableNameB varchar(1000) --需要计算的第二张表
as
declare @sql varchar(8000)
set @sql='select '
while charindex(',',@collist)>0
begin
set @sql=@sql+left(@collist,charindex(',',@collist)-1)+'='+@TableNameA+'.'+left(@collist,charindex(',',@collist)-1)+'+'+@TableNameB+'.'+left(@collist,charindex(',',@collist)-1)+','
set @collist=right(@collist,len(@collist)-charindex(',',@collist))
end
set @sql=left(@sql,len(@sql)-1)+' from #A a join #B b on '+@TableNameA+'.id='+@TableNameB+'.id'
exec ('
select identity(int,1,1)id,* into #A from '+@TableNameA+'
select identity(int,1,1)id,* into #B from '+@TableNameB+'
'+@sql+'
')