SQL不同服务器数据库之间的数据操作整理(完整版)
2010-07-20 18:01
609 查看
----------------------------------------------------------------------------------
-- 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
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
-- Blog : http://blog.csdn.net/htl258(转载保留此信息)
-- 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 以windows认证的方式登录
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 * FROM 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 删除示例
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 * FROM 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 本地表
/* 例如:INSERT 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 删除示例
DELETE 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服务器名或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_Connection=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_Connection=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=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服务器名';'用户名'; '密码',数据库名.架构名.表名)
SELECT * 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.dbo.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 * FROM OPENROWSET('SQLOLEDB','192.168.58.208';'sa';'123','SELECT * FROM Mydb.dbo.tb')
或:SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208';'sa';'123','SELECT * FROM Mydb.dbo.tb')
*/
--3.2.2 导入示例
--3.2.2.1 导入所有列
INSERT OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)
SELECT * FROM 本地表
/* 例如:INSERT OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)
SELECT * FROM tb
*/
--3.2.2.2 导入指定列
INSERT OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)(列,列...)
SELECT 列,列... FROM 本地表
/* 例如:INSERT OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)(RANGE,LEVEL,Persons)
SELECT RANGE,LEVEL,Persons FROM tb
*/
--注:更多替代方法参考.2.1查询示例,只需替换行集函数(OPENROWSET)内的内容即可。
--3.2.3 更新示例
UPDATE OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)
SET 字段='值'
WHERE 字段='条件'
/*例如:UPDATE OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)
SET Persons='g'
WHERE Persons='a'
*/
--注:更多替代方法参考.2.1查询示例,只需替换行集函数(OPENROWSET)内的内容即可。
--3.2.4 删除示例
DELETE OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)
WHERE 字段名='条件'
/*例如:DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)
WHERE Persons='g'
*/
--注:更多替代方法参考.2.1查询示例,只需替换行集函数(OPENROWSET)内的内容即可。
--3.3 OPENDATASOURCE方法(不需要用到创建好的链接名。如果连接的实例名不是默认的,需要在"sql服务器名或IP地址"后加上"/实例名")
--3.3.1 查询示例
--3.3.1.1 Windows认证方式查询(以下方法之一即可)
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;Trusted_Connection=yes').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'server=sql服务器名或IP地址;Trusted_Connection=yes').数据库名.架构名.表名
/* 例如:SELECT * FROM OPENDATASOURCE('SQLOLEDB','Server=192.168.58.208;Trusted_Connection=yes').Mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208;Trusted_Connection=yes').Mydb.dbo.tb
*/
--3.3.1.2 SQL认证方式查询(以下方法之一即可)
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
/* 例如:SELECT * FROM OPENDATASOURCE('SQLOLEDB','Server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data Source=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLNCLI','Data source=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
*/
--3.3.2 导入示例
--3.3.2.1 导入所有列
INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM 本地表
/* 例如:INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
SELECT * FROM tb
*/
--3.3.2.2 导入指定列
INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名(列,列...)
SELECT 列,列... FROM 本地表
/* 例如:INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb(RANGE,LEVEL,Persons)
SELECT RANGE,LEVEL,Persons FROM tb
*/
--注:更多替代方法参考.3.1查询示例,只需替换行集函数(OPENDATASOURCE)内的内容即可。
--3.3.3 更新示例
UPDATE OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SET 字段='值'
WHERE 字段='条件'
/*例如:UPDATE OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
SET Persons='g'
WHERE Persons='a'
*/
--注:更多替代方法参考.3.1查询示例,只需替换行集函数(OPENDATASOURCE)内的内容即可。
--3.3.4 删除示例
DELETE OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
WHERE 字段名='条件'
/*例如:DELETE OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
WHERE Persons='g'
*/
--注:更多替代方法参考.3.1查询示例,只需替换行集函数(OPENDATASOURCE)内的内容即可。
--4. 删除链接服务器方法
--如果以后不再使用时可删除链接信息
--4.1 删除登录信息(或叫删除链接服务器登录名映射)
EXEC sp_droplinkedsrvlogin 'LinkName',NULL
/*例如:EXEC sp_droplinkedsrvlogin 'TonyLink',NULL */
--4.2 删除链接服务器名称
EXEC sp_dropserver 'LinkName','droplogins' --如果指定droplogins,则在删除链接服务器之前要删除登录名映射
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/06/26/5695391.aspx
-- 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
-- Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)
-- Blog : http://blog.csdn.net/htl258(转载保留此信息)
-- 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 以windows认证的方式登录
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 * FROM 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 删除示例
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 * FROM 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 本地表
/* 例如:INSERT 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 删除示例
DELETE 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服务器名或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_Connection=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_Connection=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=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服务器名';'用户名'; '密码',数据库名.架构名.表名)
SELECT * 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.dbo.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 * FROM OPENROWSET('SQLOLEDB','192.168.58.208';'sa';'123','SELECT * FROM Mydb.dbo.tb')
或:SELECT * FROM OPENROWSET('SQLNCLI','192.168.58.208';'sa';'123','SELECT * FROM Mydb.dbo.tb')
*/
--3.2.2 导入示例
--3.2.2.1 导入所有列
INSERT OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)
SELECT * FROM 本地表
/* 例如:INSERT OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)
SELECT * FROM tb
*/
--3.2.2.2 导入指定列
INSERT OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)(列,列...)
SELECT 列,列... FROM 本地表
/* 例如:INSERT OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)(RANGE,LEVEL,Persons)
SELECT RANGE,LEVEL,Persons FROM tb
*/
--注:更多替代方法参考.2.1查询示例,只需替换行集函数(OPENROWSET)内的内容即可。
--3.2.3 更新示例
UPDATE OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)
SET 字段='值'
WHERE 字段='条件'
/*例如:UPDATE OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)
SET Persons='g'
WHERE Persons='a'
*/
--注:更多替代方法参考.2.1查询示例,只需替换行集函数(OPENROWSET)内的内容即可。
--3.2.4 删除示例
DELETE OPENROWSET('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码',数据库名.架构名.表名)
WHERE 字段名='条件'
/*例如:DELETE OPENROWSET('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123',mydb.dbo.tb)
WHERE Persons='g'
*/
--注:更多替代方法参考.2.1查询示例,只需替换行集函数(OPENROWSET)内的内容即可。
--3.3 OPENDATASOURCE方法(不需要用到创建好的链接名。如果连接的实例名不是默认的,需要在"sql服务器名或IP地址"后加上"/实例名")
--3.3.1 查询示例
--3.3.1.1 Windows认证方式查询(以下方法之一即可)
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;Trusted_Connection=yes').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'server=sql服务器名或IP地址;Trusted_Connection=yes').数据库名.架构名.表名
/* 例如:SELECT * FROM OPENDATASOURCE('SQLOLEDB','Server=192.168.58.208;Trusted_Connection=yes').Mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208;Trusted_Connection=yes').Mydb.dbo.tb
*/
--3.3.1.2 SQL认证方式查询(以下方法之一即可)
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLOLEDB', 'Data Source=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM OPENDATASOURCE('SQLNCLI', 'Data Source=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
/* 例如:SELECT * FROM OPENDATASOURCE('SQLOLEDB','Server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLNCLI','Server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLOLEDB','Data Source=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
或:SELECT * FROM OPENDATASOURCE('SQLNCLI','Data source=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
*/
--3.3.2 导入示例
--3.3.2.1 导入所有列
INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SELECT * FROM 本地表
/* 例如:INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
SELECT * FROM tb
*/
--3.3.2.2 导入指定列
INSERT OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名(列,列...)
SELECT 列,列... FROM 本地表
/* 例如:INSERT OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb(RANGE,LEVEL,Persons)
SELECT RANGE,LEVEL,Persons FROM tb
*/
--注:更多替代方法参考.3.1查询示例,只需替换行集函数(OPENDATASOURCE)内的内容即可。
--3.3.3 更新示例
UPDATE OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
SET 字段='值'
WHERE 字段='条件'
/*例如:UPDATE OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
SET Persons='g'
WHERE Persons='a'
*/
--注:更多替代方法参考.3.1查询示例,只需替换行集函数(OPENDATASOURCE)内的内容即可。
--3.3.4 删除示例
DELETE OPENDATASOURCE('SQLOLEDB', 'server=sql服务器名或IP地址;uid=用户名;pwd=密码').数据库名.架构名.表名
WHERE 字段名='条件'
/*例如:DELETE OPENDATASOURCE('SQLOLEDB','server=192.168.58.208;uid=sa;pwd=123').mydb.dbo.tb
WHERE Persons='g'
*/
--注:更多替代方法参考.3.1查询示例,只需替换行集函数(OPENDATASOURCE)内的内容即可。
--4. 删除链接服务器方法
--如果以后不再使用时可删除链接信息
--4.1 删除登录信息(或叫删除链接服务器登录名映射)
EXEC sp_droplinkedsrvlogin 'LinkName',NULL
/*例如:EXEC sp_droplinkedsrvlogin 'TonyLink',NULL */
--4.2 删除链接服务器名称
EXEC sp_dropserver 'LinkName','droplogins' --如果指定droplogins,则在删除链接服务器之前要删除登录名映射
/*例如:EXEC sp_dropserver 'TonyLink','droplogins' */
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/htl258/archive/2010/06/26/5695391.aspx
相关文章推荐
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)(转)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理(完整版)
- SQL不同服务器数据库之间的数据操作整理
- SQL不同服务器数据库之间的数据操作整理
- [转载]不同服务器数据库之间的数据操作--复制同步(整理版)