熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> SQL Server >> 正文

SQL Server導出導入數據方法

2022-06-13   來源: SQL Server 

  導出導入SQL Server裡某個數據庫
  在SQL Server企業管理器裡選中要轉移的數據庫按鼠標右鍵選所有任務>備份數據庫
  
  備份 選數據庫完全
  目的 備份到 按添加按鈕
  文件名 在SQL Server服務器硬盤下輸入一個自定義的備份數據庫文件名(後綴一般是bak)
  重寫 選重寫現有媒體
  最後按確定按鈕
  如果生成的備份數據庫文件大於M要用壓縮工具壓縮後再到Internet上傳輸
  
  通過FTP或者remote desktop或者pcanywhere等方法
  把第二步生成的備份數據庫文件或者其壓縮後的文件傳到目的SQL Server數據庫如果有壓縮要解壓
  
  目的SQL Server數據庫如果還沒有此數據庫先創建一個新的數據庫
  然後選中這個新創建的數據庫按鼠標右鍵選所有任務>還原數據庫
  還原>從設備>選擇設備>磁盤>添加(找到要導入的備份數據庫文件名)>確定
  還原備份集>數據庫完全
  最後按確定按鈕完全的數據庫導入成功了
  (如果在已經存在的SQL Server數據庫上還原數據庫可能遇到有還有其它人正在使用它而恢復操做失敗
  可以去看 >管理>當前活動>鎖/對象>找到數據庫下鎖的進程號>到查詢分析器裡用kill 進程號殺掉這些鎖
  然後再做還原)
  
  注意如果在原有的目的SQL Server數據庫上從備份文件(*bak)還原數據庫
  會把已經存在的表存儲過程等數據庫對象全部替換成最近這次導入的備份數據庫裡的內容
  
  如果一定要還原備份文件(*bak)裡部分數據需要另外建一個新數據庫
  其邏輯名稱和數量同備份文件(*bak)裡數據庫的邏輯名稱和數量一致
  新數據庫的物理文件名稱取得一定要和備份文件(*bak)裡數據庫的物理文件不一樣才行
  
  導出導入SQL Server裡某個表
  沒有防火牆同一個局域網裡或不在同一個局域網裡但通過Internet可以互相訪問
  
  在SQL Server企業管理器裡選中目的數據庫 按鼠標右鍵選所有任務>導入數據>
  彈出數據轉換服務導入/導出向導窗口>下一步>
  
  選數據源> 數據源(用於SQL Server的Microfost OLE DB提供程序)>
  服務器(可選擇局域網內能訪問到的所有SQL Server服務器或者直接輸入IP地址)>
  選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入數據庫的用戶名和密碼)>
  數據庫(可選擇上面選中SQL Server服務器上所有權限范圍內的數據庫)>下一步>
  
  選擇目的>目的(用於SQL Server的Microfost OLE DB提供程序)>
  服務器(默認為上一步裡選中的導出服務器也可以選其它局域網內能訪問到的所有SQL Server服務器或者直接輸入IP地址)>
  目的數據庫(可選擇上面選中SQL Server服務器上所有權限范圍內的數據庫)>下一步>
  
  制定表復制或查詢>選從源數據庫復制表和視圖(也可以選擇用一條查詢指定要傳輸的數據)>下一步>
  選擇源表和視圖>在要導入的表和視圖前面選中源>目的出現同樣的表名(可以手工修改成別的表名)>
  轉換>列映射和轉換裡面可以修改源表和目的表之間字段的對應關系修改目的表字段的類型和長度等
  並可以選擇創建目的表在目的表中增加行除去並重新創建目的表啟用標志插入等選項>確定>下一步>
  
  保存調度和復制包>時間>立即運行(如果要實現隔一段時間自動導出導入數據選調度DTS包以便以後執行)>
  保存(可以不選)>[ 保存DTS包(如果以後還要轉移這批相同的數據可以把本次導出導入的內容和步驟保存起來
  存到SQL Server即可保存的時候要輸入DTS的包名及詳細描述)>下一步> ]>完成
  
  正在執行包>圖形界面顯示創建表及插入記錄的步驟和狀態>完成
  
  經過防火牆不在同一個局域網裡
  
  ①導出表裡的數據到文本文件
  在SQL Server企業管理器裡選中目的數據庫按鼠標右鍵選所有任務>
  導入數據>彈出數據轉換服務導入/導出向導窗口>下一步>
  
  選數據源> 數據源(用於SQL Server的Microfost OLE DB提供程序)>
  服務器(可選擇局域網內能訪問到的所有SQL Server服務器)>
  選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入數據庫的用戶名和密碼)>
  數據庫(可選擇上面選中SQL Server服務器上所有權限范圍內的數據庫)>下一步>
  
  選擇目的>目的(文本文件)> 文件名(在自己的電腦硬盤中生成一個自定義的文本文件) >下一步>
  
  制定表復制或查詢>選從源數據庫復制表和視圖(也可以選擇用一條查詢指定要傳輸的數據)>下一步>
  
  選擇目的文件格式>源(選擇要導出的表)>用默認的帶分隔符>選第一行包含有列名稱選項>下一步>
  
  保存調度和復制包>時間>立即運行(如果要實現隔一段時間自動導出到文本文件選調度DTS包以便以後執行)>
  保存(可以不選)> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)>下一步>]>完成
  
  正在執行包>圖形界面顯示表到文本文件的步驟和狀態>完成
  
  如果生成的文本文件大於M要用壓縮工具壓縮後再到Internet上傳輸
  
  ②通過FTP或者remote desktop或者pcanywhere等方法把
  第①步生成的文本文件或者其壓縮後的文件傳到目的SQL Server數據庫如果有壓縮要解壓
  
  ③把文本文件導入目的SQL Server數據庫
  直接把文本文件導入目的SQL Server數據庫裡跟文本文件同名的新表名時默認的會把所有字段類型都變成字符串
  
  所以我們要這樣做
  在源SQL Server數據庫上先生成創建表的sql語句
  
  在SQL Server查詢分析器裡>選中源數據庫裡表名>按右鍵>在新窗口中編寫對象腳本>創建>
  復制下新窗口內創建表名的sql語句
  
  到目標SQL Server數據庫上查詢分析器裡執行創建表名的sql語句生成空表結構
  (如果已經存在這樣的表名修改建表的sql語句在表名後面加上導入時間的年月信息例如table_)
  
  調用導入/導出工具>彈出數據轉換服務導入/導出向導窗口>下一步>
  
  選數據源> 數據源(文本文件)>
  文件名(已傳到目的SQL Server數據庫下要導入的文本文件後綴可以不是*txt
  但是常規文本編輯器能打開的文件文件類型選全部)>下一步>
  
  選擇文件格式>用默認的帶分隔符>選第一行包含有列名稱選項>下一步>
  制定列分割符>逗號>下一步>
  
  選擇目的>目的(用於SQL Server的Microfost OLE DB提供程序)>
  服務器(可選擇目標局域網內能訪問到的所有SQL Server服務器)>
  選擇使用windows身份驗證還是使用SQL Serve身份驗證(輸入數據庫的用戶名和密碼)>
  數據庫(可選擇上面選中SQL Server服務器上所有權限范圍內的數據庫)>下一步>
  
  選擇源表和視圖>修改目的表名為剛才創建的表名>轉換(在目的表中追加行) >下一步>
  保存調度和復制包>
  時間>立即運行(如果要實現隔一段時間自動把文本文件導入選調度DTS包以便以後執行)>
  保存(可以不選)> [保存DTS包(保存的時候要輸入DTS的包名及詳細描述)>下一步>]>完成
  
  正在執行包>圖形界面顯示文本文件到表的步驟和狀態>完成
  
  如果要更改導入時間的年月信息的表名例如table_到原來的表名
  在企業管理器裡把原來的表名改成table_old_table_改名成table
  這會對應用程序裡頻繁訪問的表照成一定的中斷
  
  注意源表上的建的索引和主鍵約束不能用上面介紹的方法轉移過來還需要手工來建索引和主鍵
  標志種子和not null的約束可以繼承過來
  導入視圖時會把源視圖裡所有的真實數據導入成一個新表而不是視圖
  
  SQL Server存儲過程或用戶定義的函數導出導入
  導出存儲過程或用戶定義的函數成*sql文件
  
  在SQL Server企業管理器裡選中源數據庫
  存儲過程>單選或者多選中要轉移的存儲過程>
  用戶定義的函數>單選或者多選中要轉移的函數>
  按鼠標右鍵選所有任務>生成SQL腳本>確定>在自己的電腦硬盤中生成一個自定義的*sql文件>
  保存>正在生成SQL腳本>成功
  
  如果目的數據庫經過防火牆不在同一個局域網裡
  要通過FTP或者remote desktop或者pcanywhere等方法把第步生成的*sql文件傳到目的SQL Server數據庫服務器上
  
  用查詢分析器進入SQL Server目的數據庫
  從菜單裡選文件>打開>打開查詢文件>選中第步生成的*sql文件>點執行查詢的綠色倒三角型快捷鍵>
  查詢窗口裡會出現執行後的消息(有時候可能因為存儲過程和用戶定義的函數之間有一定的依賴關系會報一些錯
  最好先執行用戶定義的函數的*sql文件再執行存儲過程的*sql文件)
  
  ORACLE數據庫裡表導入SQL Server數據庫
  在目的SQL Server數據庫服務器上安裝ORACLE Client軟件或者ORACLE ODBC Driver
  在$ORACLE_HOME\network\admin\tnsnamesora裡配置ORACLE數據庫的別名(service name)
  具體配置方法可以參考本站文章:客戶端連服務器的注意事項
  
  在WIN或者win服務器>管理工具>數據源(ODBC)>
  
  系統DSN(本機器上NT域用戶都可以用)>添加>ORACLE OD
From:http://tw.wingwit.com/Article/program/SQLServer/201311/22040.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.