跨sql和access查询生成视图,怎么弄?

migichen 2011-01-26 01:28:11
如题,针对不同类型数据库进行跨数据库查询的方法。或者变通的办法。其主要目的就是在sql中调用另一个数据库的资源,以便c#等程序直接读取。
...全文
78 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
migichen 2011-01-26
  • 打赏
  • 举报
回复
http://topic.csdn.net/u/20100809/12/8031E831-4F70-463A-8CD5-31B5699EEFEF.html
migichen 2011-01-26
  • 打赏
  • 举报
回复
建这样一个XML
SQL code
<?xml version="1.0"?>
<BCPFORMAT xmlns="http://schemas.microsoft.com/sqlserver/2004/bulkload/format" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RECORD>
<FIELD ID="1" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="15"/>
<FIELD ID="2" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="15"/>
<FIELD ID="3" xsi:type="CharTerm" TERMINATOR="\r\n" MAX_LENGTH="15"/>
<FIELD ID="4" xsi:type="CharTerm" TERMINATOR="\r\n---------------------------------------------------------------------------\r\n" MAX_LENGTH="15"/>
</RECORD>
<ROW>
<COLUMN SOURCE="1" NAME="f001" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="2" NAME="f002" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="3" NAME="f003" xsi:type="SQLNVARCHAR"/>
<COLUMN SOURCE="4" NAME="f004" xsi:type="SQLNVARCHAR"/>
</ROW>
</BCPFORMAT>



用OPENROWSET(BULK)

SQL code
select * from openrowset(bulk 'D:\test.txt', formatfile='D:\test.xml') as t
/*
f001 f002 f003 f004
--------------- --------------- --------------- ---------------
f001=15 f002=20 f003=12 f004=45
f001=13 f002=11 f003=6666 f004=43
f001=13 f002=11 f003=6666 f004=43
*/

select
stuff(f001,1,5,'')f001,
stuff(f001,1,5,'')f002,
stuff(f001,1,5,'')f003,
stuff(f001,1,5,'')f004
from
openrowset(bulk 'D:\test.txt', formatfile='D:\test.xml') as t
/*
f001 f002 f003 f004
----------- ----------- ----------- -----------
15 15 15 15
13 13 13 13
13 13 13 13
*/

找到了,这个可能行,如果批量处理就好说了
migichen 2011-01-26
  • 打赏
  • 举报
回复
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="E:\系统\桌面\dynamic.mdb";User ID=Admin;Password=')...hostinfo where hostip='192.168.88.8'
原来是这样啊,谢谢了
另外,还有个问题,夹带。。走私。。。嘿嘿

有个目录下有多个TXT文件,每个文件格式都一样,一个文件好比一条记录,每个字段都用特定的字符间隔,如何导入sql?
如:
a.txt内容如下
===主机名===
张三
===数据库名===
sql数据库:name001
ORACLE数据库:oname002
===权限===
管理员:允许
叶子 2011-01-26
  • 打赏
  • 举报
回复
把access的数据先读到sql server 中,然后C#调用sql server 就可以了。
feixianxxx 2011-01-26
  • 打赏
  • 举报
回复
OpenDataSource:

一:SQL SERVER 和ACESS的数据导入导出

1.在SQL SERVER里查询access数据:
-- ======================================================
SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\DB.mdb";User ID=Admin;Password=')...表名

select * from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\db.mdb";User ID=Admin;Password=')...Student where name = '我'
select * from newTable
-------------------------------------------------------------------------------------------------
2.将access导入SQL server
-- ======================================================
在SQL SERVER 里运行:
SELECT *
INTO newtable
FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\DB.mdb";User ID=Admin;Password=' )...表名
-------------------------------------------------------------------------------------------------
3.将SQL SERVER表里的数据插入到Access表中
-- ======================================================
在SQL SERVER 里运行:
insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source=" c:\DB.mdb";User ID=Admin;Password=')...表名
(列名1,列名2)
select 列名1,列名2 from sql表

实例:
insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'C:\db.mdb';'admin';'', Test)
select id,name from Test
INSERT INTO OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'c:\trade.mdb'; 'admin'; '', 表名)
SELECT *
FROM sqltablename


insert into OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="D:\db.mdb";User ID=Admin;Password=')...Student(studentid,name)
select staffid,name from staff

insert into OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'D:\db.mdb';'admin';'', Student)
select accountid,name from tblbaccount

select * from openrowset('Microsoft.Jet.OLEDB.4.0','D:\db.mdb';'admin';'',Student)
-------------------------------------------------------------------------------------------------


还有一个方法 建立链接服务器...
fwacky 2011-01-26
  • 打赏
  • 举报
回复
程序里做!数据库应该干不了这个事!
在web.config里配置两个连接字符传,在写两个数据库连接类,调哪种库用那个对象!
fwacky 2011-01-26
  • 打赏
  • 举报
回复
你的写两个不同的数据库连接类!
Linares 2011-01-26
  • 打赏
  • 举报
回复
openrowset

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧