急问一个问题,在线等 create proc 得到数据@表名 varchar(255)asexec('select * from '+@表名)go 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 create table #临时表(结构和返回结果相同 int)insert #临时表 exec 得到数据 'Table1'select * from #临时表godrop table #临时表 我说的这些都是写在一个存储过程里面的动态生成的表名字只能计算出来,直接用select加变量名又不行,只好用exec,可又不能直接返回结果 我要的是exec ('select 数据 from ' + 临时表)中的数据,怎么才能得到?? create procedure aaasexec('select * into ##表 from 原表')exec('select * from ##表')drop table ##表go 我上面是一种方法!还有这种:create table #临时表 (结构和动态表相同 int)exec('insert #临时表 select * from '+@表名变量)select * from #临时表godrop table #临时表 如果是SQL Server2000,某些比较难处理的返回值,可以使用表值函数。 --好象zjcxc(邹建)说对了楼主的意思,我这里再提供另一种写方法:declare @tablename varchar(30) --你的表名,按楼主的说法,应该是一个变量declare @username varchar(100) --比如我们要查询改变量表的某一个数据,查询条件为@username declare @userZJF int --变量,返回要查询的该用户的专家分declare @tempSql nvarchar(1000)declare @varType nvarchar(500)set @tablename = '<your table name>' --请修改参数赋植set @username = '<your user name>' --请修改参数赋植set @tempsql = 'select @userZJF = fitemid from ' + @tablename +' where fnumber = @username 'set @vartype = '@userZJF int output,@username varchar(100) 'exec sp_executesql @tempsql, @vartype, @userZJF output,@usernameselect @userzjf --查看返回结果/*******回复人: zjcxc(邹建) ( ) 信誉:100 2003-07-31 21:34:00 得分:0 create procedure aaasexec('select * into ##表 from 原表')exec('select * from ##表')drop table ##表go*************/ 棘手问题,求高人! 导出到各表的操作 如何替换临时表里某一个字段的字段名称中的一个字符? 求助一句简单的sql,谢谢! 提取数据的问题 sqlserver 批量计算年龄 如何用sql列举日期 如何写命令把服务器上查询后的记录插入到本地数据库?? 一个有关OLEDB的问题,急急急!!!!!!!!有高分哦!!! 存储过程,写一个存储过程,一个参数每次执行的时候需要手工输入 SQL语句写法 access的参照完整性问题?
动态生成的表名字只能计算出来,直接用select加变量名又不行,只好用exec,可又不能直接返回结果
create procedure aa
as
exec('select * into ##表 from 原表')
exec('select * from ##表')
drop table ##表
go
drop table #临时表
declare @tablename varchar(30) --你的表名,按楼主的说法,应该是一个变量
declare @username varchar(100) --比如我们要查询改变量表的某一个数据,查询条件为@username
declare @userZJF int --变量,返回要查询的该用户的专家分
declare @tempSql nvarchar(1000)
declare @varType nvarchar(500)set @tablename = '<your table name>' --请修改参数赋植
set @username = '<your user name>' --请修改参数赋植set @tempsql = 'select @userZJF = fitemid from ' + @tablename +'
where fnumber = @username '
set @vartype = '@userZJF int output,@username varchar(100) '
exec sp_executesql @tempsql, @vartype, @userZJF output,@usernameselect @userzjf --查看返回结果/*******
回复人: zjcxc(邹建) ( ) 信誉:100 2003-07-31 21:34:00 得分:0 create procedure aa
as
exec('select * into ##表 from 原表')
exec('select * from ##表')
drop table ##表
go
*************/