资料来源:网络整理
时间:2023/2/14 0:12:37 共计:3609 浏览
本文主要介绍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
-
<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>
|
关于MSSQL数据库跨数据库查询和跨表查询的方法就介绍到这里,如果您有更好的方法,欢迎您与我们分享,谢谢!

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。