(注:本文转自)
我们假设有数据库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 allSELECT * 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 allSELECT * FROM test2.dbo.table1 where xingming='a' 注意事项:dbo 一定要有,不可以没有。二、MSSQL跨表查询 跨表查询我们在数据库test1内实现,执行以下的代码:SELECT * FROM table1 where xingming='a' UNION allSELECT * 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>