SQL Server中六種資料移動的方法

2021-09-07 22:19:28 字數 2296 閱讀 8895

sql server中六種資料移動的方法

1.通過工具dts的設計器進行匯入或匯出

dts的設計器功能強大,支援多工,也是視覺化介面,容易操作,但知道的人一般不多,如果只是進行sql server資料庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在sql server enterprise manager中,展開伺服器左邊的+,選擇資料庫,右擊,選擇all tasks/import data...(或all tasks/export data...),進入嚮導模式,按提示一步一步走就行了,裡面分得很細,可以靈活的在不同資料來源之間複製資料,很方便的。而且可以另存成dts包,如果以後還有相同的複製任務,直接執行dts包就行,省時省力。也可以直接開啟dts設計器,方法是展開伺服器名稱下面的data transformation services,選local packages,在右邊的視窗中右擊,選new package,就開啟了dts設計器。值得注意的是:如果源資料庫要拷貝的表有外來鍵,注意移動的順序,有時要分批移動,否則外來鍵主鍵,索引可能丟失,移動的時候選項旁邊的提示說的很明白,或者一次性的複製到目標資料庫中,再重新建立外來鍵,主鍵,索引。

其實建立資料庫時,建立外來鍵,主鍵,索引的檔案應該和建表檔案分開,而且用的資料檔案也分開,並分別放在不同的驅動器上,有利於資料庫的優化。

2. 利用bcp工具

3. 利用備份和恢復

先對源資料庫進行完全備份,備份到乙個裝置(device)上,然後把備份檔案複製到目的伺服器上(恢復的速度快),進行資料庫的恢復操作,在恢復的資料庫名中填上源資料庫的名字(名字必須相同),選擇強制型恢復(可以覆蓋以前資料庫的選項),在選擇從裝置中進行恢復,瀏覽時選中備份的檔案就行了。這種方法可以完全恢復資料庫,包括外來鍵,主鍵,索引。

4. 直接拷貝資料檔案

把資料庫的資料檔案(*.mdf)和日誌檔案(*.ldf)都拷貝到目的伺服器,在sql server query analyzer中用語句進行恢復:

exec sp_attach_db @dbname = 』test』,

@filename1 = 』d:mssql7data est_data.mdf』,

@filename2 = 』d:mssql7data est_log.ldf』

這樣就把test資料庫附加到sql server中,可以照常使用。如果不想用原來的日誌檔案,可以用如下的命令:

exec sp_detach_db @dbname = 』test』

exec sp_attach_single_file_db @dbname = 』test』,

@physname = 』d:mssql7data est_data.mdf』

這個語句的作用是僅僅載入資料檔案,日誌檔案可以由sql server資料庫自動新增,但是原來的日誌檔案中記錄的資料就丟失了。

5. 在應用程式中定製

可以在應用程式(pb、vb)中執行自己編寫的程式,也可以在query analyzer中執行,這種方法比較靈活,其實是利用乙個平台連線到資料庫,在平台中用的主要時sql語句,這種方法對資料庫的影響小,但是如果用到遠端鏈結伺服器,要求網路之間的傳輸效能好,一般有兩種語句:

1>

select ... into new_tablename where ...

2>

insert (into) old_tablename select ... from ... where ...

區別是前者把資料插入乙個新錶(先建立表,再插入資料),後者是把資料插入已經存在的乙個表中,我個人喜歡後者,因為在程式設計的結構上,應用的範圍上,第二條語句強於前者。

6. sql server的複製功能

sql server提供了強大的資料複製功能,也是最不易掌握的,具體應用請參考相關資料,值得注意的是要想成功進行資料的複製工作,有些條件是必不可少的:

1>sql server agent必須啟動,msdtc必須啟動。

2>所有要複製的表必須有主鍵。

3>如果表中有text或image資料型別,必須使用with log選項,不能使用with no_log選項。

另外max text repl size選項控制可以複製的文字和影象資料的最大規模,超過這個限制的操作將失敗。

4>在要進行複製的計算機上,應該至少是隱含共享,即共享名是c$或d$…。

5>為sql server**使用的windows nt帳號不能是乙個本地的系統帳號,因為本地的系統帳號不允許網路訪問。

6>如果參與複製的伺服器在另外的計算機域中,必須在這些域之間建立信任關係。本人從事的工作是資料庫管理員,要維護多台伺服器中的資料庫,經常把某台伺服器中的某個資料庫移動到另外一台伺服器,對資料的移動有些心得體會,希望和大家共同交流

SQL Server中六種資料移動的方法

sql server中六種資料移動的方法 1.通過工具dts的設計器進行匯入或匯出 dts的設計器功能強大,支援多工,也是視覺化介面,容易操作,但知道的人一般不多,如果只是進行sql server資料庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在sql server enterp...

SQL Server資料庫六種資料移動方法

1.通過工具dts的設計器進行匯入或匯出dts的設計器功能強大,支援多工,也是視覺化介面,容易操作,但知道的人一般不多,如果只是進行sql server資料庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在sql server enterprise manager中,展開伺服器左邊的...

SQL Server資料庫六種資料移動方法

1.通過工具dts的設計器進行匯入或匯出dts的設計器功能強大,支援多工,也是視覺化介面,容易操作,但知道的人一般不多,如果只是進行sql server資料庫中部分表的移動,用這種方法最好,當然,也可以進行全部表的移動。在sql server enterprise manager中,展開伺服器左邊的...