请教怎么写跨库查询的SQL语句
答案:3 悬赏:0 手机版
解决时间 2021-01-27 03:47
- 提问者网友:温旧梦泪无声
- 2021-01-26 07:43
比如有10个数据库,每个有10张表,一共100张表,这些表的结构都是一模一样的,现在我想查出name=‘张三’的所有行,改怎么写?
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-01-26 09:14
建议写个视图,直接查询多个数据库,速度很成问题的,你可以这样
create view V_Select
(
@name nvarchar(20)
)
as
begin
select a.* from
(
select * from 数据库名.dbo.table1
union all
select * from 数据库名.dbo.table2
.....
)a
where isnull(@name,'')='' or name='张三'
end
说明一下:
1. 因为你要查询10个数据库的表,必须这10个数据库你都可以在此数据库访问的到,这是基本条件
2. 我连接每个表的数据是用union all,这是所有数据均包含,如果你要去掉重复数据,就用union
不明白,就接着问,OK,请采纳
create view V_Select
(
@name nvarchar(20)
)
as
begin
select a.* from
(
select * from 数据库名.dbo.table1
union all
select * from 数据库名.dbo.table2
.....
)a
where isnull(@name,'')='' or name='张三'
end
说明一下:
1. 因为你要查询10个数据库的表,必须这10个数据库你都可以在此数据库访问的到,这是基本条件
2. 我连接每个表的数据是用union all,这是所有数据均包含,如果你要去掉重复数据,就用union
不明白,就接着问,OK,请采纳
全部回答
- 1楼网友:玩家
- 2021-01-26 09:52
1、同一个服务器跨数据库查询
select a.列1,a.列2,b.列1,b.列1,
from 数据1.dob.查询表1 a inner join 数据2.dbo.查询表2 b
on b.关联字段=a.关联字段
where 条件
2、不同服务跨数据库查询:
首先创建链接服务器,后查询方法与1类似,只是查询时需要把数据链接名称添加到查询中。
具体操作参看:http://blog.csdn.net/htl258/article/details/5695391
- 2楼网友:风格不统一
- 2021-01-26 09:21
没有办法一次性把所有库都查一遍,你只能一个库一条语句的写
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯