1.windows安装mysql odbc connector
2.windows管理工具配置mysql odbc数据源
3.在sqlserver management studio中运行
EXEC master.dbo.sp_addlinkedserver
@server = N'MYSQL',
@srvproduct = N'MySQL',
@provider = N'MSDASQL',
@provstr = N'DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=192.168.1.28;_DATABASE=android_box;USER=xxx;PASSWORD=xxx;OPTION=3'
这个脚本通过ODBC驱动创建一个联接到你的MySQL数据库,在sqlserver management studio的服务器对象-链接服务器中可以看到刚配置的MYSQL。
4.在新建查询中执行
SELECT * INTO android_box.dbo.cdb_android_box_stat_ci_s
FROM openquery(MYSQL,'SELECT * FROM android_box.cdb_android_box_stat_ci_s WHERE dt = "2013-07-02"')
即可将对应数据插入到sqlserver中(该命令会在sqlserver中自动建表),此次插入完成之后若想继续插入数据需要使用:
INSERT INTO android_box.dbo.cdb_android_box_stat_ci_s
SELECT *
FROM openquery(MYSQL,'SELECT * FROM android_box.cdb_android_box_stat_ci_s WHERE dt = "2013-07-03"')
来进行,否则会报cdb_android_box_stat_ci_s已存在的错误导致插入失败。
tips:
快速查询数据库表记录条数的办法:
select id,object_name(id) as tableName,indid,rows,rowcnt
from sys.sysindexes where indid in(0,1) and object_name(id) = 'cdb_android_box_stat_ci_s';
在表数据比较大的时候会很慢,这时使用上一种方法会很快得到数据库表记录条数。