日期:2014-05-18  浏览次数:20436 次

怎么实现“select * from 存储过程”的效果?
怎么实现“select   *   from   存储过程”的效果?
“存储过程”返回一个数据集


------解决方案--------------------
1、想办法改成 “select * from 函数”
2、
create table #...(...)
insert #... exec 存储过程

3、非正常方法,不说更好

------解决方案--------------------
如果存储过程最后有select ...,直接exec 存储过程

create table 表(结构同存储过程的返回值)
insert into 表
exec 存储过程
select * from 表
------解决方案--------------------
这个用存储过程不行!!!

------解决方案--------------------



--第一种方法:直接用存储过程返回的数据集,存储过程中不能有insert、delete、update等操作数据,有很多限制。

select * from openrowset( 'sqloledb ', 'Trusted_Connection=yes ', 'exec 数据库名.dbo.存储过程名 ')

select * from openrowset( 'sqloledb ', 'Trusted_Connection=yes ', 'exec 数据库名..存储过程名 ')

select * from openrowset( 'sqloledb ', 'localhost '; '用户名 '; '密码 ', 'exec 数据库名..存储过程名 ')

select * from openrowset( 'sqloledb ', '192.168.0.1 '; '用户名 '; '密码 ', 'exec 数据库名..存储过程名 ')


-第二种方法:先创建临时表,然后再追加

create table #t(...)

insert into #t exec 存储过程名

select * from #t

------解决方案--------------------
那么想用select 话,就直接用函数就行了吗?