sqlserver2014數據導出與導入

sqlserver2014數據庫導出與導入

寫在前面
  sqlserver數據庫爲數據的導入導出提供了很多途徑,一般地我們在已經有數據源的情況下(即服務器已經安裝了sqlserver),這時使用一個全新的數據庫,需要創建數據庫使用。在實際項目中,我們往往已經有數據庫的初始化版本,這時候就需要將初始化的數據庫文件導入新的數據源。這時候我們最常用的就是使用數據庫的備份文件,在新的數據源文件中還原數據庫。但是一般地生產環境不允許這樣的方式恢復數據庫,只能通過sql腳本方式來恢復。那麼下面我將總結下使用備份文件還原數據庫和sql文件恢復數據庫的具體辦法。
1.使用的備份文件

  • 首先我們應備份數據庫,選擇要備份數據庫,右鍵 任務 ->備份 如下圖
    在這裏插入圖片描述

  • 選擇數據庫備份類型爲完整,點擊添加選擇備份文件的存放路徑,點擊確定生成備份文件(以.bak結尾) 如下圖
    在這裏插入圖片描述

  • 當我們在另一個數據源需要恢復數據庫時,選擇數據庫,右鍵 選擇還原數據庫 如下圖
    在這裏插入圖片描述

  • 將備份文件.bak放在本地某路徑,點擊 選擇 設備->添加 ,選擇對應的路徑下的.bak文件進行還原 如下圖
    在這裏插入圖片描述2.使用SQL文件

  • 首先我們選擇要導出的數據庫,右鍵選擇 任務->生成腳本,然後點擊下一步。如下圖
    在這裏插入圖片描述

    • 選擇特定的數據庫對象,勾選所有選項(是要導出當前數據庫的所有表、存儲過程、函數等),點擊下一步。如下圖

在這裏插入圖片描述在這裏插入圖片描述

  • 在文件名中選擇導出SQL文件的存放地址,點擊 高級 ,在彈出框中找到 要編寫腳本的數據類型 一項,選擇架構和數據,即可導出結構和數據。如下圖
    在這裏插入圖片描述

  至此已經完成了把數據庫導出爲SQL腳本的操作,接下來就是如何在另一個數據源下恢復這個數據庫。因爲我們導出數據庫如有存量數據的情況下,SQL文件一般較大,直接執行會很就慢甚至造成數據庫卡頓。如果我們恢復較大的sql文件,可以使用windows自帶的sqlcmd,使用命令導入。具體步驟如下:

  先新建一個數據庫,用於存放這個sql文件的數據和結構,如在生產中,爲了使用方便,要建立和測試環境相同賬戶名稱數據庫。建立數據庫可以使用客戶端直接創建,具體做法是選擇數據庫 ,右鍵 ,選擇新建數據庫即可創建,使用sql創建,語句如下:

IF EXISTS(SELECT * FROM sysdatabases WHERE name='student')
DROP DATABASE student
GO
CREATE DATABASE student	--創建數據庫
ON PRIMARY	--定義在主文件組上的文件
(NAME=stu_date,	--邏輯名稱
FILENAME='E:\TEST\student.mdf',	--物理名稱
SIZE=10,	--初始大小爲10mb
MAXSIZE=unlimited,	--最大限制爲無限大
FILEGROWTH=10%)	--主數據文件增長幅度爲10%
LOG ON	--定義事務日誌文件
(NAME=stu_log,	--邏輯名稱
FILENAME='E:\TEST\student.ldf',	--物理名稱
SIZE=1,	--初始大小爲1mb
MAXSIZE=5,	--最大限制爲5mb
FILEGROWTH=1)	--事務日誌增長幅度爲1mb` 

有了數據庫後,我們使用cmd命令行,鍵入如下命令

sqlcmd -S localhost -U sa -P 123456 -d les_traacc -i E:\test.sql

在這裏插入圖片描述

參數說明:
-S 後面 localhost指導入本地數據庫,要導入服務器,應更換爲服務器ip

-U 後面爲數據源 賬戶名

-P後面爲數據源 密碼

-d 後面爲需要導入的sql文件絕對路徑

  以下是實際使用後補充的注意事項
  1.在實際項目中,因爲項目文件較大,導出的sql文件也較大,那麼用命令行執行就會很慢,建議按照表、自定義函數、存儲過程分別導出爲單獨的sql文件,這樣導入時時間短,需要查看sql文件也不會因爲很大而打開過慢。
  2.如果導出的sql文件中,導出了創建數據庫的用戶信息,即sql開頭有create database 的操作,此時如果數據庫中已經有同名數據庫的情況下,需要更改mdf、ldf的文件路徑。如需手動創建用戶,可以刪除create database 這一段sql,即可導入成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章