Home > Database > Mysql Tutorial > body text

sql server 跨数据库完成数据转移

WBOY
Release: 2016-06-07 15:36:05
Original
1368 people have browsed it

删除已经存在的表 drop table [Test].dbo.[sales_tblLanguage] --这句是映射一个远程数据库 --EXEC sp_addlinkedserver '192.168.0.27\sqlexpress',N'SQL Server' --这句是登录远程数据库 EXEC sp_addlinkedsrvlogin '192.168.0.27\sqlexpress', 'false', NU

删除已经存在的表    drop table [Test].dbo.[sales_tblLanguage]

 

--这句是映射一个远程数据库  --EXEC sp_addlinkedserver '192.168.0.27\sqlexpress',N'SQL Server'

--这句是登录远程数据库     EXEC sp_addlinkedsrvlogin '192.168.0.27\sqlexpress', 'false', NULL, 'sa', 'sasa'

--登录后,可以用以下格式操作远程数据库中的对象   

select * into [Test].dbo.[sales_tblLanguage]
 from [192.168.0.27\sqlexpress].[WSSys].[dbo].[sales_tblLanguage]

exec sp_dropserver,['192.168.0.27\sqlexpress'],'droplogins'

**********************************************************************************************************************************************

       开启安全权限

        exec sp_configure 'show advanced options',1
       reconfigure
       exec sp_configure 'Ad Hoc Distributed Queries',1
       reconfigure

--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

 关闭安全权限

       exec sp_configure 'Ad Hoc Distributed Queries',0
       reconfigure
       exec sp_configure 'show advanced options',0
       reconfigure

 

****************************************************************************************************************************************

用于数据更新,已经存在就更新,不存在就重新插入


 

--这句是映射一个远程数据库
EXEC sp_addlinkedserver '192.168.0.27\sqlexpress',N'SQL Server'


--这句是登录远程数据库
EXEC sp_addlinkedsrvlogin '192.168.0.27\sqlexpress','false', NULL, 'sa', 'sasa'


select * from [192.168.0.27\sqlexpress].[WSSys].[dbo].sales_tblLanguage


--登录后,可以用以下格式操作远程数据库中的对象   

Merge sales_tblLanguage As Target
Using (Select * From  [192.168.0.27\sqlexpress].[WSSys].[dbo].sales_tblLanguage) As Source
on Target.Code = Source.Code And Target.frmName = Source.frmName
WHEN MATCHED THEN
UPDATE Set Language02 = Source.Language02, Language03 = Source.Language03
WHEN NOT MATCHED BY TARGET THEN
Insert (Code, frmName, Language02, Language03) Values (Source.Code, Source.frmName, Source.Language02, Language03);

 

 

*******************************************************************************************************************************************

 

 

 

 

 

 

 

 

 

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template