MSSQL数据库跨表和跨数据库查询方法简介

本文主要介绍MSSQL数据库跨表和跨数据库查询的方法,我们假设有数据库test1和数据库test2。其中test1中有表 table1、table2;test2 中有表 table1。三个表的字段都为为:id、xingming、shijian、shuliang。接下来我们就以上面的条件为例来介绍跨数据库查询和跨表查询的方法。

一、跨数据库

(1)原始:

 
 
 
  1. SELECT *
  2.   FROM OPENROWSET('sqloledb',
  3.         'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=ccds',  
  4.         test1.dbo.table1)  where xingming='a'
  5.   UNION   all  
  6. SELECT *
  7.   FROM OPENROWSET('sqloledb',
  8.         'DRIVER={SQL Server};SERVER=127.0.0.1;UID=sa;PWD=ccds',  
  9.         test2.dbo.table1)  where xingming='a'

(2)简化:

 
 
 
  1. SELECT * FROM test1.dbo.table1  where xingming='a'
  2.   UNION   all  
  3. SELECT * FROM test2.dbo.table1  where xingming='a'

注意事项:dbo一定要有,不可以没有。

二、跨表

跨表查询我们在数据库test1内实现,执行以下的代码:

 
 
 
  1. SELECT * FROM table1  where xingming='a'
  2.   UNION   all  
  3. SELECT * FROM table2  where xingming='a'

这就是UNION ALL 的作用。

如果上面没有看懂,先建好上面的数据库和表,下面有个asp实例,照抄就可以了。

文件名:unionall.asp

 
 
 
  1. <%sqlStr="provider=sqloledb;data source=127.0.0.1;uid=sa;pwd=;database=test1"    '跨库时,数据库名不必指定,如:database=
  2. set conn=server.createObject("adodb.connection")
  3. conn.open sqlStr
  4. set rs=server.createObject("adodb.Recordset")
  5. sql="   SELECT * "
  6. sqlsql=sql&" FROM test1.dbo.table1  where xingming='a' "
  7. sqlsql=sql&" UNION all "
  8. sqlsql=sql&" SELECT * "
  9. sqlsql=sql&" FROM test2.dbo.table1  where xingming='a'"
  10. rs.open sql,conn,1%>
  11.  
  12.   
  13.    id
  14.    xingming
  15.    shijian
  16.    shuliang
  17.   <%if not rs.eof then
  18.   do while not rs.eof%>
  19.  
  20.    <%=rs("id")%>
  21.    <%=rs("xingming")%>
  22.    <%=rs("shijian")%>
  23.    <%=rs("shuliang")%>
  24.   <%rs.movenext
  25.   loop
  26.   end if
  27. rs.close
  28. set rs=nothing
  29. conn.close
  30. set conn=nothing%>
  31.  
  • 关于MSSQL数据库跨数据库查询和跨表查询的方法就介绍到这里,如果您有更好的方法,欢迎您与我们分享,谢谢!

    网站标题:MSSQL数据库跨表和跨数据库查询方法简介
    文章网址:http://www.csdahua.cn/qtweb/news1/345001.html

    网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网

    成都快上网为您推荐相关内容

    小程序开发知识

    同城分类信息