连接多个数据库之后如何把数据整合到一张表上

时间:2022-01-04 14:54:22

create proc OtherConnSQL

as
begin
declare @t_id varchar(50),@t_name varchar(50),@t_tel varchar(50)

select @id=u_id,@name=u_name,@tel=u_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select u_id,u_name,U_password,u_tel from ABC.dbo.USER_TABLE') as t

select @id=id,@name=c_name,@tel=c_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select id,c_name,c_tel from CBA.dbo.CU_TABLE') as A 
end

这个存储过程查出来的是其它服务器上的两张表的信息,如何让他们显示到一张表上呢!!

前提是不把这两条数据插入笨的的数据库中

7 个解决方案

#1


用UNION

#2


create proc OtherConnSQL
as
begin
select id=u_id,name=u_name,tel=u_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select u_id,u_name,U_password,u_tel from ABC.dbo.USER_TABLE') as t
union all
select id=id,name=c_name,tel=c_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select id,c_name,c_tel from CBA.dbo.CU_TABLE') as A
end

#3


引用 2 楼 pt1314917 的回复:
SQL code
create proc OtherConnSQL
as
begin
    select id=u_id,name=u_name,tel=u_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select u_id,u_name,U_password,u_tel from ABC……


up ,要看你想不想要重复的数据,想要就union all,不想就union

#4


UNION ALL 一下

如数据量较大的话,建议使用表变量或临时表

纯属个人意见

#5


union all
注意,显示的是一个数据集(或说用户视图),不是一个表.

#6


union all 

但看楼主提供的代码好像是在同一服务器上。

#7


学习了
引用 2 楼 pt1314917 的回复:
SQL code
create proc OtherConnSQL
as
begin
    select id=u_id,name=u_name,tel=u_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select u_id,u_name,U_password,u_tel from ABC……

#1


用UNION

#2


create proc OtherConnSQL
as
begin
select id=u_id,name=u_name,tel=u_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select u_id,u_name,U_password,u_tel from ABC.dbo.USER_TABLE') as t
union all
select id=id,name=c_name,tel=c_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select id,c_name,c_tel from CBA.dbo.CU_TABLE') as A
end

#3


引用 2 楼 pt1314917 的回复:
SQL code
create proc OtherConnSQL
as
begin
    select id=u_id,name=u_name,tel=u_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select u_id,u_name,U_password,u_tel from ABC……


up ,要看你想不想要重复的数据,想要就union all,不想就union

#4


UNION ALL 一下

如数据量较大的话,建议使用表变量或临时表

纯属个人意见

#5


union all
注意,显示的是一个数据集(或说用户视图),不是一个表.

#6


union all 

但看楼主提供的代码好像是在同一服务器上。

#7


学习了
引用 2 楼 pt1314917 的回复:
SQL code
create proc OtherConnSQL
as
begin
    select id=u_id,name=u_name,tel=u_tel from openrowset('SQLNCLI','Server=(local);Trusted_Connection=yes;','select u_id,u_name,U_password,u_tel from ABC……