SQL Server 如何跨服务器复制表中数据
不同数据库之间复制表的数据的方法:
当表目标表存在时:
insert into 目的数据库..表 select * from 源数据库..表
当目标表不存在时:
select * into 目的数据库..表 from 源数据库..表
--如果在不同的SQL之间:
insert into openrowset(sqloledb,目的服务器名;sa;,目的数据库.dbo.表)
select * from 源数据库..表
-- 创建链接服务器
exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip地址
exec sp_addlinkedsrvlogin ITSV , false , null , 用户名 , 密码
-- 查询示例
select * from ITSV.数据库名.dbo.表名
-- 导入示例
select * into 表 from ITSV.数据库名.dbo.表名
-- 以后不再使用时删除链接服务器
exec sp_dropserver ITSV , droplogins
-- 连接远程/局域网数据(openrowset/openquery/opendatasource)
-- 1、openrowset
-- 查询示例
select * from openrowset ( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名)
-- 生成本地表
select * into 表 from openrowset ( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名)
-- 把本地表导入远程表
insert openrowset ( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名)
select * from 本地表
-- 更新本地表
update b
set b.列A = a.列A
from openrowset ( SQLOLEDB , sql服务器名 ; 用户名 ; 密码 ,数据库名.dbo.表名) as a inner join 本地表 b
on a.column1 = b.column1
-- openquery用法需要创建一个连接
-- 首先创建一个连接创建链接服务器
exec sp_addlinkedserver ITSV , , SQLOLEDB , 远程服务器名或ip地址
-- 查询
select *
FROM openquery (ITSV, SELECT * FROM 数据库.dbo.表名 )
-- 把本地表导入远程表
insert openquery (ITSV, SELECT * FROM 数据库.dbo.表名 )
select * from 本地表
-- 更新本地表
update b
set b.列B = a.列B
FROM openquery (ITSV, SELECT * FROM 数据库.dbo.表名 ) as a
inner join 本地表 b on a.列A = b.列A
-- 3、opendatasource/openrowset
SELECT *
FROM opendatasource ( SQLOLEDB , Data Source=ip/ServerName;User ID=登陆名;Password=密码 ).test.dbo.roy_ta
-- 把本地表导入远程表
insert opendatasource ( SQLOLEDB , Data Source=ip/ServerName;User ID=登陆名;Password=密码 ).数据库.dbo.表名
select * from
-----------------------------------------------------------------------------------------------------------------------------------
好吧,如果上面看得烦下面有个更容易理解的例子:
Exec sp_droplinkedsrvlogin DBVIP,Null
Exec sp_dropserver DBVIP
EXEC sp_addlinkedserver
@server=DBVIP,--被访问的服务器别名
@srvproduct=,
@provider=SQLOLEDB,
@datasrc=Server2 --要访问的服务器
EXEC sp_addlinkedsrvlogin
DBVIP, --被访问的服务器别名
false,
NULL,
sa, --帐号
thankyoubobby --密码
Select * from DBVIP.pubs.dbo.orders
/////////////////////////////ORACLE////////////////////////////
Exec sp_droplinkedsrvlogin demo,Null
Exec sp_dropserver demo
go
EXEC sp_addlinkedserver
@server =demo,
@srvproduct=Oracle,
@provider=MSDAORA,
@datasrc=ServiceName
EXEC sp_addlinkedsrvlogin
demo,
false,
NULL,
userid,
password
go
SELECT * FROM OPENQUERY(demo ,select * from tbdemo )
UPDATE OPENQUERY (demo, SELECT id FROM tbdemo WHERE id = 101)
SET name = hello;
INSERT OPENQUERY (demo, SELECT id FROM tbdemo)
VALUES (hello);
DELETE OPENQUERY (demo, SELECT id FROM tbdemo WHERE name = hello);
-------------------------------------------具体例子------------------------------------------------------------
if exists(select 1 from master.dbo.sysservers where srvname = test)
begin
exec sp_droplinkedsrvlogin test,sa
exec sp_dropserver test
end
--建立连接服务器
EXEC sp_addlinkedserver test, ms,SQLOLEDB, 192.168.1.99
exec sp_addlinkedsrvlogin test,false,null,sa,
select * from test.db_film.dbo.T_film
go
if exists(select 1 from master.dbo.sysservers where srvname = test)
begin
exec sp_droplinkedsrvlogin test,sa
exec sp_dropserver test
end
go
方法二:
1、新建一个连接服务器,连接到你要导入的服务器的IP地址(或者机器名)
2、点击安全性,使用此安全上下文建立连接,输入数据库服务器的用户名和密码
3、选择要导出的数据库,使用如下sql导数据:
select * into laobao from [10.180.116.121].ynpdeicp.dbo.LaoBao
Sql解释:
select 要导入的字段 into 要导入的数据表 from [IP地址].数据库名.dbo.数据表名
[ SQL Server ] 计算N个月前,N个月后的方法 #1. 计算N个月前的日期 #2. 计算N个月后的日期 #3. 月末最后一天的情况(计算从日数多的月到日数较少的月) #4. 月末最后一天的情况(计算从日数少的月到日数较多的月)
【SQL Server】数据库开发指南(三)面向数据分析的 T-SQL 编程技巧与实践 T-SQL 指的是 Transact-SQL,是一种针对 Microsoft SQL Server 数据库系统的 SQL 方言。T-SQL 扩展了标准 SQL 语言,提供了更多的功能和特性,包括事务处理、错误处理、游标处理、动态 SQL、存储过程、触发器、用户定义函数等等。
相关文章
- sql服务器系统时间格式,SQL Server 日期格式和日期操做
- centos dhcp服务器配置_dhcp server什么意思
- 饥荒服务器mod从modoverrides文件自动转换为dedicated_server_mods_setup 文件
- (本地无法连接MySQL服务器)ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost‘ (10061)
- 在Windows Server 2008 R2服务器下架设VPN服务器的方法
- SQL开发知识:Sql server中内部函数fn_PhysLocFormatter存在解析错误
- SQLServer 错误 10060 在建立与服务器的连接时出错。 在连接到 SQL Server 时,在默认的设置下 SQL Server 不允许远程连接可能会导致此失败。 (提供程序:TCP 提供程序,错误:0 – 由于被连接方在一段时间后未正确响应,或者连接的主机无法响应,连接尝试失败。)(Microsoft SQL Server,错误:10060) 故障 处理 修复 支持远程
- SQL Server 2012安装后服务器名称找不到的解决办法
- sql语句优化之SQL Server(详细整理)
- 在SQL Server中查询资料库的TABLE数量与名称的sql语句
- SQL Server如何通过SQL语句直接操作另一台服务器上的SQL SERVER的数据
- 解决SQL Server连接服务器失败问题(sqlserver无法连接到服务器)
- The Essential Guide to Configuring SSH on Your Linux Server(linux服务器ssh配置)
- 最好的服务器系统:Windows Server 2003也快死了
- SQL Server 零碎部署:安装到D盘上(sqlserver装d盘)
- 器SQL Server缺失:服务器怎么办?(sqlserver缺服务)
- SQL Server:一款让你轻松管理数据的强大数据库服务器(sqlserver的简介)
- 器部署SQL Server主服务器:从入门到精通(sqlserver主服务)
- ssqlMS SQL Server:简单易用的数据库服务器(sqlserver -m)
- Sql学习第一天——SQL练习题(建表/sql语句)