还是昨天下午那个存储过程的问题~~大哥们帮帮忙(谢谢,在线)

lyzhong 2004-08-26 08:25:54
Create Proc Proc_Stack
--传递参数
@collist varchar(1000),--传入的需要计算的字符串,格式为"A,B,C,"
@TableNameA varchar(1000),--需要计算的第一张表
@TableNameB varchar(1000) --需要计算的第二张表
as
--构造动态语句
Exec('select identity(int,1,1)id,* into #A from '+@TableNameA)
Exec('select identity(int,1,1)id,* into #B from '+@TableNameB)
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 (@sql)
---------------------------------------
总是说临时表#A和#B不存在~~

谢谢了
...全文
105 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyzhong 2004-08-26
  • 打赏
  • 举报
回复
OK
谢谢你拉,老大
你真好 嘻嘻..........
zjcxc 元老 2004-08-26
  • 打赏
  • 举报
回复
你可以发信息给我嘛,如果我没回,证明我不在. :D
zjcxc 元老 2004-08-26
  • 打赏
  • 举报
回复
有时有事做,等到看的时候,帖子已经沉下去了,当然就看不到.

lyzhong 2004-08-26
  • 打赏
  • 举报
回复
哦,好的
谢谢建哥
白天等你一天,都没看你出现
嘻嘻...........
zjcxc 元老 2004-08-26
  • 打赏
  • 举报
回复
--不然改成这样:

Create Proc Proc_Stack
--传递参数
@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+'
')
zjcxc 元老 2004-08-26
  • 打赏
  • 举报
回复
你用的是局部的临时表,它只在创建它的过程中存在.

exec是一个过程,所以exec结束后,临时表就自动删除了,改为全部的临时表吧.

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧