程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> MSSQL >> 在SQL Server中遷徙數據的幾種辦法

在SQL Server中遷徙數據的幾種辦法

編輯:MSSQL

在SQL Server中遷徙數據的幾種辦法。本站提示廣大學習愛好者:(在SQL Server中遷徙數據的幾種辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是在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"對象

固然這類對象固然在SQL Server7的版本中不推舉應用,但很多數據庫治理員仍很愛好用它,特別是用過SQL Server晚期版本的人。Bcp有局限性,起首它的界面不是圖形化的,其次它只是在SQL Server的表(視圖)與文本文件之間停止復制,但它的長處是機能好,開支小,占用內存少,速度快。有興致的同伙可以查參考手冊。

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)假如介入復制的辦事器在別的的盤算機域中,則須要在這些域之間樹立信賴關系。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved