现有一个表aa里面记录如下:
序号,代码数据, 单位名称,数据库实体---指数据库名称,有很多个数据库
1 01 五产, wc
2 02 六产, lc
.......
现在每个数据实体都有一个表aa,想用游标提取每个数据库表aa, 就是在
declare dycgjh_cursor cursor LOCAL SCROLL for
select 代码数据, 单位名称,数据库实体 from KDAcctDB.dbo.t_ad_kdAccount_gl
open dycgjh_cursor
declare @dwfnumber varchar(255)
declare @dwname varchar(255)
declare @fdbname varchar(255)
WHILE @@FETCH_STATUS = 0
begin
fetch next from dycgjh_cursor into @dwfnumber,@dwname,@fdbnameuse @fdbname----这个地方报错
用select * from @fdbname.dbo.aa -----这样用也报错
序号,代码数据, 单位名称,数据库实体---指数据库名称,有很多个数据库
1 01 五产, wc
2 02 六产, lc
.......
现在每个数据实体都有一个表aa,想用游标提取每个数据库表aa, 就是在
declare dycgjh_cursor cursor LOCAL SCROLL for
select 代码数据, 单位名称,数据库实体 from KDAcctDB.dbo.t_ad_kdAccount_gl
open dycgjh_cursor
declare @dwfnumber varchar(255)
declare @dwname varchar(255)
declare @fdbname varchar(255)
WHILE @@FETCH_STATUS = 0
begin
fetch next from dycgjh_cursor into @dwfnumber,@dwname,@fdbnameuse @fdbname----这个地方报错
用select * from @fdbname.dbo.aa -----这样用也报错
可以考虑用视图
create view V_aa
as
begin
select * from 数据库1.dbo.aa
union
select * from 数据库2.dbo.aa
union
select * from 数据库3.dbo.aa
end
GO
select * from V_aa
declare @x int
set @x=1
declare @y int
DECLARE @cdbname varchar(80)
DECLARE @cacc_name varchar(80)
DECLARE @sql varchar(500)
select @y=count(fid) FROM #aa
WHILE @x<=@y
begin
set @cdbname=''
select @cdbname=cdbname FROM #aa WHERE fid=@x
select @cacc_name=cacc_name FROM #aa WHERE fid=@x
set @sql='select '''+@cacc_name+''' as 数据库名称, * FROM '+@cdbname+'.dbo.t_icitem'exec(@sql) set @x=@x+1
end