本文主要介绍MSSQL数据库跨表和跨数据库查询的方法,我们假设有数据库test1和数据库test2。其中test1中有表 table1、table2;test2 中有表 table1。三个表的字段都为为:id、xingming、shijian、shuliang。接下来我们就以上面的条件为例来介绍跨数据库查询和跨表查询的方法。
一、跨数据库
(1)原始:
- SELECT *
- FROM OPENROWSET('sqloledb',
- 'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=ccds',
- test1.dbo.table1) where xingming='a'
- UNION all
- SELECT *
- FROM OPENROWSET('sqloledb',
- 'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=ccds',
- test2.dbo.table1) where xingming='a'
(2)简化:
- SELECT * FROM test1.dbo.table1 where xingming='a'
- UNION all
- SELECT * FROM test2.dbo.table1 where xingming='a'
注意事项:dbo一定要有,不可以没有。
二、跨表
跨表查询我们在数据库test1内实现,执行以下的代码:
- SELECT * FROM table1 where xingming='a'
- UNION all
- SELECT * FROM table2 where xingming='a'
这就是UNION ALL 的作用。
如果上面没有看懂,先建好上面的数据库和表,下面有个asp实例,照抄就可以了。
文件名:unionall.asp
- <%sqlStr="provider=sqloledb;data source=127.0.0.1;uid=sa;pwd=;database=test1" '跨库时,数据库名不必指定,如:database=
- set conn=server.createObject("adodb.connection")
- conn.open sqlStr
- set rs=server.createObject("adodb.Recordset")
- sql=" SELECT * "
- sqlsql=sql&" FROM test1.dbo.table1 where xingming='a' "
- sqlsql=sql&" UNION all "
- sqlsql=sql&" SELECT * "
- sqlsql=sql&" FROM test2.dbo.table1 where xingming='a'"
- rs.open sql,conn,1%>
<%if not rs.eof then id xingming shijian shuliang - do while not rs.eof%>
<%rs.movenext <%=rs("id")%> <%=rs("xingming")%> <%=rs("shijian")%> <%=rs("shuliang")%> - loop
- end if
- rs.close
- set rs=nothing
- conn.close
- set conn=nothing%>
关于MSSQL数据库跨数据库查询和跨表查询的方法就介绍到这里,如果您有更好的方法,欢迎您与我们分享,谢谢!
网站标题:MSSQL数据库跨表和跨数据库查询方法简介
文章网址:http://www.csdahua.cn/qtweb/news1/345001.html
网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网