34,838
社区成员




create proc proc_test @i int
as
select 1 as id
go
select * into #lrb
from openrowset('sqloledb','127.0.0.1';'sa';'',
'set fmtonly off;declare @I int set @I = 1 exec csdn_test..proc_test @i')
select * from #lrb
drop proc proc_test
drop table #lrb
/*
id
-----------
1
(所影响的行数为 1 行)
*/
--哦,理解错楼主的意思了。。
应该像二楼那样先创建临时表。不过要知道表结构。
declare @sql varchar(1000)
declare @flag_Year varchar(4)
declare @flag_Month varchar(2)
declare @flag_rq datetime
set @flag_year='2007'
set @flag_month='12'
set @flag_rq='2007-11-30'
create table #lrb(col_list...)--先定义临时表
set @sql='
--select * into #lrb
insert into #lrb select *
from openrowset(''sqloledb'',''127.0.0.1'';''sa'';'''',
''set fmtonly off;exec sqlserver.dbo.sz_a1 '''''+@flag_Year+''''','''''+@flag_Month+''''',
'''''+CONVERT(Varchar(10),@flag_rq,20)+''''' '')'
exec(@sql) ---执
select * from #lrb ---这里就不会提示没有找到对象了。
declare @sql varchar(1000)
declare @flag_Year varchar(4)
declare @flag_Month varchar(2)
declare @flag_rq datetime
set @flag_year='2007'
set @flag_month='12'
set @flag_rq='2007-11-30'
create table #lrb(col_list...)--先定义临时表
set @sql='
--select * into #lrb
insert into #lrb
from openrowset(''sqloledb'',''127.0.0.1'';''sa'';'''',
''set fmtonly off;exec sqlserver.dbo.sz_a1 '''''+@flag_Year+''''','''''+@flag_Month+''''',
'''''+CONVERT(Varchar(10),@flag_rq,20)+''''' '')'
exec(@sql) ---执
--这样?
declare @sql varchar(1000)
declare @flag_Year varchar(4)
declare @flag_Month varchar(2)
declare @flag_rq datetime
set @flag_year='2007'
set @flag_month='12'
set @flag_rq='2007-11-30'
set @sql='select * into #lrb
from openrowset(''sqloledb'',''127.0.0.1'';''sa'';'''',
''set fmtonly off;exec sqlserver.dbo.sz_a1 '''''+@flag_Year+''''','''''+@flag_Month+''''',
'''''+CONVERT(Varchar(10),@flag_rq,20)+''''' '') select * from #lrb'
exec(@sql)