MSSQL數據庫跨表和跨數據庫查詢方法簡(轉)


(注:本文轉自http://zhidao.zgsj.com/article/5/2011715100803.shtml

我們假設有數據庫test1和數據庫test2。其中test1中有表 table1、table2;test2 中有表 table1。三個表的字段都為為:id、xingming、shijian、shuliang。接下來我們就以上面的條件為例來介紹跨數據庫查詢和跨表查詢的方法。
一、MSSQL跨數據庫查詢
(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 一定要有,不可以沒有。

二、MSSQL跨表查詢
  跨表查詢我們在數據庫test1內實現,執行以下的代碼:
SELECT * FROM table1  where xingming='a'
  UNION   all
SELECT * FROM table2  where xingming='a'
  這就是UNION ALL 的作用。
  如果上面沒有看懂,先建好上面的數據庫和表,下面有個asp實例,照抄就可以了。
  文件名:unionall.asp
<html>
<head>
<meta http-equiv="Content-Language" content="zh-cn">
</head>
<body>
<%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%>
<div align="center">
 <table border="1" style="border-collapse: collapse" width="388" bordercolor="#0000FF" id="table1">
  <tr>
<td height="28" bgcolor="#CCCCCC" align="center"><b>id</b></td>
<td width="135" height="28" bgcolor="#CCCCCC" align="center"><b>xingming</b></td>
<td width="109" height="28" bgcolor="#CCCCCC" align="center"><b>shijian</b></td>
<td width="89" height="28" bgcolor="#CCCCCC" align="center"><b>shuliang</b></td>
  </tr><%if not rs.eof then 
  do while not rs.eof%>
 <tr>
<td height="28" align="center"><%=rs("id")%></td>
<td width="135" height="28" align="center"><%=rs("xingming")%></td>
<td width="109" height="28" align="center"><%=rs("shijian")%></td>
<td width="89" height="28" align="center"><%=rs("shuliang")%></td>
  </tr><%rs.movenext 
  loop 
  end if 
rs.close 
set rs=nothing
conn.close 
set conn=nothing%>
 </table>
</div>
</body>
</html>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM