
创建一个存储过程用来读取
create PROCEDURE TESTPERCUDURE
AS
DECLARE @col INTEGER
DECLARE @tablename varchar(100)
DECLARE @SQL AS VARCHAR(200)
BEGIN
SELECT TOP 0 QQNUM INTO dboqqnum FROM groupdatadbogroup001 --创建一个表用来装你的数据
SET @col=1
SET @tablename='st'
WHILE @db_num<=100
begin
SET @SQL='select FROM '+@tablename+@col+' GROUP'+' where sname = '李三'' --通过循环获取你的表名和数据库名,之后组装成SQL语句,然后执行你试试 我没数据库不好修改的
EXECUTE sp_executesql @SQL
SET @col=@col+1
SET @col=1
END
end
大概像上面的存储过程一样,这样要求表名是st1,st2, ,st100
给你个办法,但只能一个库一个库执行,每次执行完把语句用到下一个库里就可以
分几步 *** 作
第一部,建立一个存储你得到的结果的表
比如你表名都是以table开头的话
先建立结果表
select into result from table_1 where 1=0 --这是建立一个空表然后执行以下过程
DECLARE c_cursor CURSOR FORSelect name From sysobjects where name like 'table%' order by name
DECLARE @tablename varchar(100)
DECLARE @sql varchar(max)
OPEN c_cursor
FETCH NEXT FROM c_cursor into @tablename
WHILE @@FETCH_STATUS = 0
BEGIN
set @sql='insert into result select from ' + @tablename + ' where col=''xx'''--xx就是你要查的名字,可自己替换,其他地方就不要改啦
exec (@sql)
FETCH NEXT FROM c_cursor into @tablename
END
CLOSE c_cursor
DEALLOCATE c_cursor
执行完后,查看结果
select from result如果你两个数据库在同一个服务器上可以用
select 库1x,库2xx from 库1table1 ,库2table2 where 库1table1xxx=库2table2xxx 这种方式写
这样你只需要写一个库1的连接字符串。。。然后把语句丢给库1处理。。。
如果是两个不同服务器。。。还是用链接或存储过程吧。。。
同库 *** 作
select a列名1,b列名2,a列名3 from 表名1 as a
join 表名2 as b
on a关联字段=b关联字段
不同库 *** 作
select a列名1,b列名2,a列名3 from 库名1dbo表名1 as a
join 库名2dbo表名2 as b
on a关联字段=b关联字段
2张表以上的多表连接:先两张连接再与第三张连接,依次下去,如
select a列名1,b列名2,a列名3 from 表名1 as a
join 表名2 as b
on a关联字段=b关联字段
join 表名3 as c
on a关联字段=c关联字段
你可以建立链接服务器,链接到11个库。
可以使用t-sql编写脚本循环 找出每个库中你想要的表, 获取表中的数据
不同点是需要使用带数据链接的查询
select from [dblink名称]远程数据库名dbo表
以上就是关于从多个表中查询数据的sql语句全部的内容,包括:从多个表中查询数据的sql语句、mssql搜索多个数据库中的所有表中的所有内容、sql数据库 多个数据库进行关联查询 求助等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)