1、SQL不同服务器数据库之间的数据操作整理完整版SQL不同服务器数据库之间的数据操作整理(完整版)分类: 原创与心得导入导出专题远程连接2010-06-26 09:153276人阅读评论(10)收藏举报- Author : htl258(Tony)- Date : 2010-06-25 22:23:18- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86) - Jul 9 2008 14:43:34 - Copyright (c) 1988-2008 Microsoft Corporation- Develope
2、r Edition on Windows NT 5.1 (Build 2600: Service Pack 2)- Blog : - Subject: SQL不同服务器数据库之间数据操作整理-1. 创建链接服务器-1.1 创建一个链接名EXEC sp_addlinkedserver LinkName,SQLOLEDB,远程服务器名或ip地址 -有自定义实例名还要加上/实例名 /*例如:EXEC sp_addlinkedserver TonyLink,SQLOLEDB,192.168.58.208 */ -1.2 创建登录信息(或叫创建链接服务器登录名映射)(只需选择一种方式)-1.2.1 以w
3、indows认证的方式登录EXEC sp_addlinkedsrvlogin LinkName -或EXEC sp_addlinkedsrvlogin LinkName,true /*例如:EXEC sp_addlinkedsrvlogin TonyLink */ -1.2.2 以SQL认证的方式登录 EXEC sp_addlinkedsrvlogin LinkName,false,NULL,用户名,密码 /*例如:EXEC sp_addlinkedsrvlogin TonyLink,false,null,sa,123 */-2. 链接服务器相关数据操作-2.1 查询示例SELECT * FR
4、OM LinkName.数据库名.架构名.表名 /*例如:SELECT * FROM TonyLink.Mydb.dbo.tb */-2.2 导入示例SELECT * INTO 表名 FROM LinkName.数据库名.架构名.表名 /*例如:SELECT * INTO Newtb FROM TonyLink.Mydb.dbo.tb */-2.3 更新示例UPDATE LinkName.数据库名.架构名.表名 SET 字段=值 WHERE 字段=条件 /*例如:UPDATE TonyLink.Mydb.dbo.tb SET Persons=g WHERE Persons=a */-2.4 删
5、除示例DELETE LinkName.数据库名.架构名.表名 WHERE 字段名=条件 /*例如:DELETE TonyLink.Mydb.dbo.tb WHERE Persons=g */-3. 通过行集函数(OPENQUERY/OPENROWSET/OPENDATASOURCE)操作方法-3.1 OPENQUERY 方法(需要借助刚创建的链接服务器):-3.1.1 查询示例SELECT * FROM OPENQUERY(LinkName,SELECT * FROM 数据库名.架构名.表名) /* 例如:SELECT * FROM OPENQUERY(TonyLink,SELECT * FR
6、OM Mydb.dbo.tb) */-3.1.2 导入示例-3.1.2.1 导入所有列INSERT OPENQUERY(LinkName, SELECT * FROM 数据库名.架构名.表名) SELECT * FROM 本地表 /* 例如:INSERT OPENQUERY(TonyLink,SELECT * FROM Mydb.dbo.tb) SELECT * FROM tb */ -3.1.2.2 导入指定列INSERT OPENQUERY(LinkName, SELECT * FROM 数据库名.架构名.表名) (列,列.) SELECT 列,列. FROM 本地表 /* 例如:INSE
7、RT OPENQUERY(TonyLink,SELECT * FROM Mydb.dbo.tb)(RANGE,LEVEL,Persons) SELECT RANGE,LEVEL,Persons FROM tb */-3.1.3 更新示例UPDATE OPENQUERY(LinkName, SELECT * FROM 数据库名.架构名.表名) SET 字段=值 WHERE 字段=条件 /*例如:UPDATE OPENQUERY(TonyLink, SELECT * FROM Mydb.dbo.tb) SET Persons=g WHERE Persons=a */-3.1.4 删除示例DELET
8、E OPENQUERY(LinkName, SELECT * FROM 数据库名.架构名.表名) WHERE 字段名=条件 /*例如:DELETE OPENQUERY(TonyLink, SELECT * FROM Mydb.dbo.tb) WHERE Persons=g */-3.2 OPENROWSET方法(不需要用到创建好的链接名。如果连接的实例名不是默认的,需要在sql服务器名或IP地址后加上/实例名)-3.2.1 查询示例-3.2.1.1 Windows认证方式查询(以下方法之一即可)SELECT * FROM OPENROWSET(SQLOLEDB, server=sql服务器名或
9、IP地址;Trusted_Connection=yes,数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLNCLI, server=sql服务器名或IP地址;Trusted_Connection=yes,数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLOLEDB, server=sql服务器名或IP地址;Trusted_Connection=yes,SELECT * FROM 数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLNCLI, server=sql服务器名或IP地址;Trusted_Co
10、nnection=yes,SELECT * FROM 数据库名.架构名.表名) /* 例如:SELECT * FROM OPENROWSET(SQLOLEDB,Server=192.168.58.208;Trusted_Connection=yes,Mydb.dbo.tb) 或:SELECT * FROM OPENROWSET(SQLNCLI,Server=192.168.58.208;Trusted_Connection=yes,Mydb.dbo.tb) 或:SELECT * FROM OPENROWSET(SQLOLEDB,Server=192.168.58.208;Trusted_Con
11、nection=yes,SELECT * FROM Mydb.dbo.tb) 或:SELECT * FROM OPENROWSET(SQLNCLI,Server=192.168.58.208;Trusted_Connection=yes,SELECT * FROM Mydb.dbo.tb) */-3.2.1.2 SQL认证方式查询(以下方法之一即可)SELECT * FROM OPENROWSET(SQLOLEDB, server=sql服务器名或IP地址;uid=用户名;pwd=密码,数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLNCLI, server=
12、sql服务器名或IP地址;uid=用户名;pwd=密码,数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLOLEDB, server=sql服务器名或IP地址;uid=用户名;pwd=密码,SELECT * FROM 数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLNCLI, server=sql服务器名或IP地址;uid=用户名;pwd=密码,SELECT * FROM 数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLOLEDB, sql服务器名;用户名; 密码,数据库名.架构名.表名) SE
13、LECT * FROM OPENROWSET(SQLNCLI, sql服务器名;用户名; 密码,数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLOLEDB, sql服务器名;用户名; 密码,SELECT * FROM 数据库名.架构名.表名) SELECT * FROM OPENROWSET(SQLNCLI, sql服务器名;用户名; 密码,SELECT * FROM 数据库名.架构名.表名) /* 例如:SELECT * FROM OPENROWSET(SQLOLEDB,server=192.168.58.208;uid=sa;pwd=123,mydb.db
14、o.tb) 或:SELECT * FROM OPENROWSET(SQLNCLI,server=192.168.58.208;uid=sa;pwd=123,mydb.dbo.tb) 或:SELECT * FROM OPENROWSET(SQLOLEDB,server=192.168.58.208;uid=sa;pwd=123,SELECT * FROM Mydb.dbo.tb) 或:SELECT * FROM OPENROWSET(SQLNCLI,server=192.168.58.208;uid=sa;pwd=123,SELECT * FROM Mydb.dbo.tb) 或:SELECT * FROM OPENROWSET(SQLOLEDB,192.168.58.208;sa;123,mydb.dbo.tb) 或:SELECT * FROM OPENROWSET(SQLNCLI,192.168.58.208;sa;123,mydb.dbo.tb) 或:SELECT
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1