日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
SQL實現(xiàn)跨數(shù)據(jù)庫復(fù)制表數(shù)據(jù)方法 (sql不同數(shù)據(jù)庫間復(fù)制表部分數(shù)據(jù))

在日常開發(fā)中,我們常常需要將一個數(shù)據(jù)庫中的表數(shù)據(jù)復(fù)制到另一個數(shù)據(jù)庫中,以達到數(shù)據(jù)同步或者備份的目的。在同一個數(shù)據(jù)庫中,很容易實現(xiàn)這個功能,直接使用 INSERT INTO SELECT 或者 SELECT INTO 語句就可以了。但是如果要跨越不同的數(shù)據(jù)庫,就需要使用不同的方法。本文就介紹一下如何使用SQL來實現(xiàn)跨數(shù)據(jù)庫復(fù)制表數(shù)據(jù)的功能。

我們提供的服務(wù)有:成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、東勝ssl等。為上1000家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學管理、有技術(shù)的東勝網(wǎng)站制作公司

一、使用Linked Server

Linked Server 是SQL Server 提供的一個功能,它可以在一個本地 SQL Server 中定義一個對另一個遠程 SQL Server 的引用。通過這個功能,我們可以在一個數(shù)據(jù)庫中直接訪問另一個數(shù)據(jù)庫中的表和數(shù)據(jù)。以下是一個示例代碼:

–創(chuàng)建一個遠程服務(wù)器,引用另一個數(shù)據(jù)庫

EXEC sp_addlinkedserver

@server = ‘RemoteServer’,

@srvproduct = ”,

@provider = ‘SQLOLEDB’,

@datasrc = ‘RemoteServer\InstanceName’

–配置登錄賬戶信息

EXEC sp_addlinkedsrvlogin

@rmtsrvname = ‘RemoteServer’,

@useself = ‘False’,

@rmtuser = ‘RemoteUser’,

@rmtpassword = ‘RemotePassword’

–查詢遠程服務(wù)器中的表

SELECT * FROM [RemoteServer].[RemoteDatabaseName].[dbo].[RemoteTableName]

通過以上代碼,我們就可以在本地服務(wù)器中訪問遠程服務(wù)器中的表數(shù)據(jù),然后使用 INSERT INTO SELECT 語句來將數(shù)據(jù)復(fù)制到本地數(shù)據(jù)庫中。

二、使用OPENROWSET 和 OPENDATASOURCE

除了使用Linked Server,我們還可以通過OPENROWSET 和 OPENDATASOURCE 這兩個SQL Server提供的函數(shù)來連接不同的數(shù)據(jù)庫,實現(xiàn)數(shù)據(jù)復(fù)制的功能。以下是一個示例代碼:

–使用OpenDataSource函數(shù)連接遠程服務(wù)器

SELECT *

FROM OPENDATASOURCE(‘SQLOLEDB’, ‘Data Source=RemoteServer\InstanceName;User ID=RemoteUser;Password=RemotePassword;’).[RemoteDatabaseName].[dbo].[RemoteTableName]

–使用OpenRowSet函數(shù)連接遠程服務(wù)器

SELECT *

FROM OPENROWSET(‘SQLOLEDB’, ‘Data Source=RemoteServer\InstanceName;User ID=RemoteUser;Password=RemotePassword;’,

‘SELECT * FROM [RemoteDatabaseName].[dbo].[RemoteTableName]’)

以上代碼中,我們使用不同的函數(shù),使用相同的方式連接了遠程服務(wù)器,并查詢了遠程服務(wù)器中的表數(shù)據(jù),然后使用 INSERT INTO SELECT 語句將數(shù)據(jù)復(fù)制到本地數(shù)據(jù)庫中。

三、使用SQL Server數(shù)據(jù)工具包

我們還可以使用SQL Server 數(shù)據(jù)工具包導入和導出數(shù)據(jù),實現(xiàn)數(shù)據(jù)復(fù)制的功能。以下是一個示例代碼:

–使用SQL Server 數(shù)據(jù)工具包導出數(shù)據(jù)

bcp “SELECT * FROM [RemoteServer].[RemoteDatabaseName].[dbo].[RemoteTableName]” queryout “c:\temp\output.txt” -c -T

–使用SQL Server 數(shù)據(jù)工具包導入數(shù)據(jù)

bcp [LocalDatabaseName].[dbo].[LocalTableName] in “c:\temp\output.txt” -c -T

以上代碼中,我們通過 bcp 命令行工具,使用查詢語句將遠程服務(wù)器中的表數(shù)據(jù)導出到本地文件中,然后再將文件中的數(shù)據(jù)導入到本地數(shù)據(jù)庫中。

在不同的場景中,我們可以選擇不同的方法來實現(xiàn)跨數(shù)據(jù)庫復(fù)制表數(shù)據(jù)的功能,每種方法都有不同的優(yōu)缺點,我們可以根據(jù)具體情況選擇最合適的方式。

相關(guān)問題拓展閱讀:

  • 如何實現(xiàn)MS SQL中同一數(shù)據(jù)庫中表與表之間的數(shù)據(jù)復(fù)制?

如何實現(xiàn)MS SQL中同一數(shù)據(jù)庫中表與表之間的數(shù)據(jù)復(fù)制?

1. 通過工具DTS的設(shè)計器進行導入或?qū)С?/p>

DTS的設(shè)計器功能強大,支持多任務(wù),也是可視化界面,容易操作,但知道的人一般不多,如果只是御鍵沒進行SQL Server數(shù)據(jù)庫中部分表的移動,用這種方法更好,當然,也可以進行全部表的移動。在SQL Server Enterprise Manager中,展開服務(wù)器左邊的+,選擇數(shù)據(jù)庫,右擊,選擇All tasks/Import Data…(或All tasks/Export Data…),進入向?qū)J剑刺崾疽徊揭徊阶呔托辛?,里面分得很細,可以靈活的在不同數(shù)據(jù)源之間復(fù)制數(shù)據(jù),很方便的。而且可以另存成DTS包,如果以后還有相同的復(fù)制任務(wù),直接運鎮(zhèn)納行DTS包就行,省時省力。也可以直接打開DTS設(shè)計器,方法是展開服務(wù)器名稱下面的Data Transformation Services,選Local Packages,在右邊的窗口中右擊,選New Package,就打開了DTS設(shè)計器。值得注意的是:如果源數(shù)據(jù)庫要拷貝的表有外鍵,注意移動的順序,有時要分批移動,否則外鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的復(fù)制到目標數(shù)據(jù)庫中,再重新建立外鍵,主鍵,索引。

其實建立數(shù)據(jù)庫時,建立外鍵,主鍵,索引的文件應(yīng)該和建表文件分開,而且用的數(shù)據(jù)文件也分開,并分別放在不同的驅(qū)動器上,有利于數(shù)據(jù)庫的優(yōu)化。

2. 利用Bcp工具

這種工具雖然在SQL Server7的版本中不推薦使用,但許多數(shù)據(jù)庫管理員仍很喜歡用它,尤其是用過SQL Server早期版本的人。Bcp有局限性,首先它的界面不是圖形化的,其次它只是在SQL Server的表(視圖)與文本文件之間進行復(fù)制,但它的優(yōu)點是性能好,開銷小,占用內(nèi)存少,速度快。有興趣的朋友可以查參考手冊。

3. 利用備份和恢復(fù)

先對源數(shù)據(jù)庫進行完全備份,備份到一個設(shè)備(device)上,然后把備份文件復(fù)制到目的服務(wù)器上(恢復(fù)的速度快),進行數(shù)據(jù)庫的恢復(fù)操作,在恢復(fù)的數(shù)據(jù)庫名中填上源數(shù)據(jù)庫的名字(名字必須相同),選擇強制型恢復(fù)(可以覆蓋以前數(shù)據(jù)庫的選項),在選擇從設(shè)備中進行恢復(fù),瀏覽時選中備份的文件就行了。這種方法可以完全恢復(fù)數(shù)據(jù)庫,包括外鍵,主鍵,索引。

4. 直接拷貝數(shù)據(jù)文件

把數(shù)據(jù)庫的數(shù)據(jù)文件(*.mdf)和日志文件(*.ldf)都拷貝到目的服務(wù)器,在SQL Server Query Analyzer中用語句進行恢復(fù):

EXEC sp_attach_db @dbname = ‘test’,

@filename1 = ‘d:\mssql7\data\test_data.mdf’,

@filename2 = ‘d:\mssql7\data\test_log.ldf’

這樣就把test數(shù)據(jù)庫附加到SQL Server中,可以照常使用。如果不想用原來的日志文件,可以用如下的命令:

EXEC sp_detach_db @dbname = ‘test’

EXEC sp_attach_single_file_db @dbname = ‘test’,

@physname = ‘d:\mssql7\data\test_data.mdf’

這個語句的作用是僅僅加載數(shù)據(jù)文件,日志文件可以由SQL Server數(shù)據(jù)庫自動添加,但是亮蠢原來的日志文件中記錄的數(shù)據(jù)就丟失了。

5. 在應(yīng)用程序中定制

可以在應(yīng)用程序(PB、VB)中執(zhí)行自己編寫的程序,也可以在Query Analyzer中執(zhí)行,這種方法比較靈活,其實是利用一個平臺連接到數(shù)據(jù)庫,在平臺中用的主要時SQL語句,這種方法對數(shù)據(jù)庫的影響小,但是如果用到遠程鏈接服務(wù)器,要求網(wǎng)絡(luò)之間的傳輸性能好,一般有兩種語句:

1> select … into new_tablename where …

2> insert (into) old_tablename select … from … where …

區(qū)別是前者把數(shù)據(jù)插入一個新表(先建立表,再插入數(shù)據(jù)),后者是把數(shù)據(jù)插入已經(jīng)存在的一個表中,我個人喜歡后者,因為在編程的結(jié)構(gòu)上,應(yīng)用的范圍上,第二條語句強于前者。

6. SQL Server的復(fù)制功能

SQL Server提供了強大的數(shù)據(jù)復(fù)制功能,也是最不易掌握的,具體應(yīng)用請參考相關(guān)資料,值得注意的是要想成功進行數(shù)據(jù)的復(fù)制工作,有些條件是必不可少的:

1>SQL Server Agent必須啟動,MSDTC必須啟動。

2>所有要復(fù)制的表必須有主鍵。

3>如果表中有text或image數(shù)據(jù)類型,必須使用with log選項,不能使用with no_log選項。

另外max text repl size選項控制可以復(fù)制的文本和圖像數(shù)據(jù)的更大規(guī)模,超過這個限制的操作將失敗。

4>在要進行復(fù)制的計算機上,應(yīng)該至少是隱含共享,即共享名是C$或D$…。

5>為SQL Server代理使用的Windows NT帳號不能是一個本地的系統(tǒng)帳號,因為本地的系統(tǒng)帳號不允許網(wǎng)絡(luò)存取。

6>如果參與復(fù)制的服務(wù)器在另外的計算機域中,必須在這些域之間建立信任關(guān)系。本人從事的工作是數(shù)據(jù)庫管理員,要維護多臺服務(wù)器中的數(shù)據(jù)庫,經(jīng)常把某臺服務(wù)器中的某個數(shù)據(jù)庫移動到另外一臺服務(wù)器,對數(shù)據(jù)的移動有些心得體會,希望和大家共同交流。

select into * from 表名

可以。支持。要的就是樓上這為大蝦的謹慎。

支持二樓的方法!

sql不同數(shù)據(jù)庫間復(fù)制表部分數(shù)據(jù)的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于sql不同數(shù)據(jù)庫間復(fù)制表部分數(shù)據(jù),SQL實現(xiàn)跨數(shù)據(jù)庫復(fù)制表數(shù)據(jù)方法,如何實現(xiàn)MS SQL中同一數(shù)據(jù)庫中表與表之間的數(shù)據(jù)復(fù)制?的信息別忘了在本站進行查找喔。

成都網(wǎng)站設(shè)計制作選創(chuàng)新互聯(lián),專業(yè)網(wǎng)站建設(shè)公司。
成都創(chuàng)新互聯(lián)10余年專注成都高端網(wǎng)站建設(shè)定制開發(fā)服務(wù),為客戶提供專業(yè)的成都網(wǎng)站制作,成都網(wǎng)頁設(shè)計,成都網(wǎng)站設(shè)計服務(wù);成都創(chuàng)新互聯(lián)服務(wù)內(nèi)容包含成都網(wǎng)站建設(shè),小程序開發(fā),營銷網(wǎng)站建設(shè),網(wǎng)站改版,服務(wù)器托管租用等互聯(lián)網(wǎng)服務(wù)。


當前標題:SQL實現(xiàn)跨數(shù)據(jù)庫復(fù)制表數(shù)據(jù)方法 (sql不同數(shù)據(jù)庫間復(fù)制表部分數(shù)據(jù))
文章網(wǎng)址:http://m.5511xx.com/article/cdipods.html