SQL Server實戰一:創建、分離、附加、刪除、備份資料庫

来源:https://www.cnblogs.com/fkxxgis/p/18154698
-Advertisement-
Play Games

本文介紹基於Microsoft SQL Server軟體,實現資料庫創建、分離、附加、刪除與備份的方法。 目錄1 互動式創建資料庫2 Transact-SQL指定參數創建資料庫3 互動式分離資料庫testbase14 使用系統存儲過程分離資料庫testbase25 資料庫文件備份:分離資料庫再複製其 ...


  本文介紹基於Microsoft SQL Server軟體,實現資料庫創建、分離、附加、刪除備份的方法。

目錄

  空間資料庫同樣是GIS行業中至關重要的一部分。因此,本系列博客就將基於Microsoft SQL Server軟體,對資料庫基礎知識與實際操作、代碼含義等加以細緻梳理與介紹。

  系列文章中示例數據來源於《SQL Server實驗指導(2005版)》一書。依據本系列文章的思想與對操作步驟、代碼的詳細解釋,大家用自己手頭的數據,可以將相關操作與分析過程加以完整重現。

1 互動式創建資料庫

(1) 啟動Microsoft SQL Server 2008 R2軟體;

(2) 在 “對象資源管理器”中,右鍵“資料庫”按鈕,選擇“新建資料庫”選項,即可彈出“新建資料庫”視窗,如下圖;

image

(3) 在所彈出的“新建資料庫”視窗中“資料庫名”一欄內輸入“jxsk”;在“資料庫文件”列表中,選擇資料庫數據文件的存儲“路徑”右側的省略號按鈕,並將路徑設置為“G:\sql\chutianjia sql”;選擇資料庫日誌文件的存儲“路徑”右側的省略號按鈕,將路徑設置為“G:\sql\chutianjia sql”,同時可在此處查看其他相關數據的設置;點擊“確定”按鈕,資料庫創建完成。在“對象資源管理器”一欄處刷新後可以看到所建立的資料庫已存在;

(4) 在“對象資源管理器”中,右鍵選擇jxsk,選擇“屬性”項目,打開“資料庫屬性”視窗,在左側 “選擇頁”中,選擇“文件”一欄,即可查看資料庫文件屬性,如下圖;

(5) 單擊選擇數據文件行中“自動增長”單元格右側的省略號按鈕,即可彈出更改自動增長設置對話框;在“文件增長”項目中,選擇“按MB(M)”勾選框,併在其右側文本框中輸入4;在“最大文件大小”一欄中,選擇“限制文件增長(MB)”勾選框,併在其右側文本框中輸入100;單擊“確定”,即可實現對資料庫屬性的更改。

2 Transact-SQL指定參數創建資料庫

(1) 創建資料庫“testbase”

i. 單擊屏幕上方工具欄中的“新建查詢”按鈕,打開“查詢編輯器”視窗,併在查詢編輯器視窗中輸入以下T-SQL語句,如下圖:

CREATE DATABASE testbase1
ON
(NAME=testbase1_data,
FILENAME='G:\sql\chutianjia sql\testbase_data.mdf')
LOG ON
(NAME=taetbase1_log,
FILENAME='G:\sql\chutianjia sql\testbase_data.ldf')
GO

ii. 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;若語句存在問題,將會在下方的提示視窗中顯示問題所在;

iii. 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已存在通過上述方法新建立的testbase1資料庫;

iv. 在“對象資源管理器”中,右擊資料庫testbase1,選擇快捷菜單中的“屬性”選項,打開資料庫testbase1屬性對話框視窗,即可分別查看“常規”“文件”“文件組”等屬性頁內容,結果分別如以下三圖所示;

(2) 指定多個參數創建資料庫“testbase2”

i. 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”視窗,併在“查詢編輯器”視窗中輸入以下T-SQL語句:

CREATE DATABASE testbase2
ON
PRIMARY
(NAME=testbase2_prim_sub_dat1,
FILENAME='G:\sql\chutianjia sql\testbase2_prim_sub_dat.mdf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=20%),
(NAME=testbase2_prim_sub_dat2,
FILENAME='G:\sql\chutianjia sql\testbase2_prim_sub_dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=20%),
FILEGROUP testbase2_group1
(NAME=testbase2_group1_sub1,
FILENAME='G:\sql\chutianjia sql\testbase2_group1_sub1.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=5MB),
(NAME=testbase2_group1_sub2,
FILENAME='G:\sql\chutianjia sql\testbase2_group1_sub2.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=5MB),
FILEGROUP testbase2_group2
(NAME=testbase2_group2_sub1,
FILENAME='G:\sql\chutianjia sql\testbase2_group2_sub1.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=15%),
(NAME=testbase2_group2_sub2,
FILENAME='G:\sql\chutianjia sql\testbase2_group2_sub2.dat.ndf',
SIZE=5MB,
MAXSIZE=50MB,
FILEGROWTH=15%)
LOG ON
(NAME=testbase2_testbase2_log,
FILENAME='G:\sql\chutianjia sql\testbase2_log_file.idf',
SIZE=20MB,
MAXSIZE=500MB,
FILEGROWTH=10MB)
GO

ii. 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;若語句存在問題,將會在下方的提示視窗中顯示問題所在;

iii. 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已存在通過上述方法新建立的testbase2資料庫,如下圖;

iv. 在“對象資源管理器”窗格中,右擊資料庫testbase2,選擇快捷菜單中的“屬性”選項,打開資料庫testbase1屬性對話框視窗,即可分別查看“常規”“文件”“文件組”等屬性頁內容,結果分別如以下三圖所示;

3 互動式分離資料庫testbase1

(1) 在“對象資源管理器”中,右擊資料庫testbase1,選擇快捷菜單中的“屬性”選項,打開資料庫testbase1屬性對話框視窗,在“選擇頁”一欄中,選擇“文件”按鈕,即可查詢對應資料庫文件名和物理文件路徑名;

(2) 在“對象資源管理器”中,右擊資料庫testbase1,在彈出的視窗中選擇“任務”→分離”;

(3) 在彈出的視窗中,若“狀態”選項為“就緒”字樣,則表明該資料庫testbasel目前正處於非活動連接狀態;此時選擇“確定”按鈕即可完成資料庫的分離操作;而如果上述“狀態”一欄為“非就緒”字樣,表明該資料庫目前正處於活動連接狀態,即正在被使用中,則需選中“刪除連接”字樣處的覆選框,再單擊“確定”按鈕即可完成分離,如下圖;

(4) 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已不存在通過上述方法新建立的testbase1資料庫,如下圖。

4 使用系統存儲過程分離資料庫testbase2

(1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”視窗,併在“查詢編輯器”視窗中輸入以下T-SQL語句:

EXEC sp_detach_db testbase2,true

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已不存在通過上述方法新建立的testbase2資料庫,如下圖。

5 資料庫文件備份:分離資料庫再複製其物理文件

(1) 在“對象資源管理器”中,右擊資料庫testbase1,選擇快捷菜單中的“屬性”選項,打開資料庫testbase1屬性對話框視窗,在“選擇頁”一欄中,選擇“文件”按鈕,即可查詢對應資料庫文件名和物理文件路徑名;

(2) 在“對象資源管理器”中,右擊資料庫testbase1,在彈出的視窗中選擇“任務”→分離”;

(3) 在資源管理器中,打開文件夾“G:\sql\chutianjia sql”,將資料庫文件testbase_data.mdf、testbase_data.ldf複製到可移動磁碟“G:\sql”文件目錄下,如下圖;

6 資料庫文件備份:停止SQL Server 2008服務再複製資料庫物理文件

(1) 選擇“開始”→“Microsoft SQL Server 2008 R2”→“SQL Server 配置管理器”→“SQL Server服務”,右擊選擇“SQL Server(MSSQLSERVER)”,選擇“停止”,如以下兩圖;

(2) 打開“對象資源管理器”窗格,發現(local)左側的資料庫標記增加了一個紅色的點狀符號,說明服務已停止;

(3) 在資源管理器中,打開文件夾“G:\sql\chutianjia sql”,將資料庫文件testbase_data.mdf、testbase_data.ldf複製到可移動磁碟“G:\sql”文件目錄下,如下圖。

7 互動式附加資料庫

(1) 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“附加”選項;

(2) 選擇需要加以附加的資料庫物理文件,選擇定位文件夾“G:\sql\chutianjia sql”並選擇對應資料庫的物理文件並選擇“確定”按鈕,再次選擇“確定”即可;

(3) 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已存在通過上述方法新建立的testbase2資料庫,如下圖。

8 使用系統存儲過程附加資料庫

(1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”視窗,併在“查詢編輯器”視窗中輸入以下T-SQL語句:

EXEC sp_attach_single_file_db @dbname='testbase1',
@physname='G:\sql\chutianjia sql\testbase_data.mdf'

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已存在通過上述方法新建立的資料庫。

9 互動式刪除資料庫

(1) 在“對象資源管理器”中,右擊資料庫testbase1,選擇快捷菜單中的“刪除”選項,如下圖;

(2) 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已不存在testbase1資料庫。

10 Transact-SQL刪除資料庫

(1) 單擊屏幕上方 “工具欄”菜單中的“新建查詢”按鈕,打開“查詢編輯器”視窗,併在“查詢編輯器”視窗中輸入以下T-SQL語句:

drop database testbase2

(2) 單擊 “工具欄”中的“執行(x)”按鈕,即可執行上述T-SQL語句,如下圖;

(3) 在“對象資源管理器”窗格中,在“資料庫”處右鍵,在彈出的菜單中選擇“刷新”選項,可見其所示內容中已不存在testbase2資料庫,如下圖;

至此,大功告成。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文分享自天翼雲開發者社區《linux shell 腳本調試技巧》,作者:g****n 1.bash -x 加腳本 這是最常用的調試手段,終端會列印出,腳本執行過程中的每一個命令。 a. 查看腳本流程有無錯誤 b.查看變數值有無錯誤 c.查看退出位置是否符合預期 例如腳本 small_test.sh ...
  • 雙向鏈表 雙向鏈表的原理與應用 如果想要提高單向鏈表或者單向迴圈鏈表的訪問速度,則可以在鏈表中的結點中再添加一個指針域,讓新添加的指針域指向當前結點的直接前驅的地址,也就意味著一個結點中有兩個指針域(prev + next),也被稱為雙向鏈表(Double Linked List)。 單向迴圈鏈表實 ...
  • 單向迴圈鏈表(其一) 單向迴圈鏈表的原理與應用: 單向迴圈的鏈表的使用規則和普通的單向鏈表沒有較大的區別,需要註意:*單向迴圈鏈表的尾結點的指針域中必須指向鏈表的首結點的地址*,由於帶頭結點的單向迴圈鏈表更加容易進行管理,如下圖所示: 上圖所示的就是一個典型的單向迴圈鏈表的結構,可以發現單向迴圈鏈表 ...
  • Lab2: system calls 預備知識 執行一次系統調用的流程: USER MODE step1:系統調用聲明 user/user.h:系統調用函數(如 int fork(void)) step2:ecall 進入內核態 user/usys.S(該文件由 user/usys.pl 生成,後續 ...
  • 18.鏈表只能一個接著一個遍歷,不允許通過隨機訪問 7.鏈表的地址是連續的,通過內部的指針來進行訪問 //假設該鏈表只給出了頭指針 head。在不改變鏈表的前提下,請設計一個儘可能高效的演算法, //查找鏈表中倒數第k(k為正整數)個位置上的結點。若查找成功,演算法輸出該結點的 data值,並返回 1; ...
  • 轉載自天地風雷水火山澤 目的 因為我們的數倉數據源是Kafka,離線數倉需要用Flume採集Kafka中的數據到HDFS中。 在實際項目中,我們不可能一直在Xshell中啟動Flume任務,一是因為項目的Flume任務很多,二是一旦Xshell頁面關閉Flume任務就會停止,這樣非常不方便,因此必須 ...
  • 本文分享自華為雲社區《對接HiveMetaStore,擁抱開源大數據》,作者:睡覺是大事。 1. 前言 適用版本:9.1.0及以上 在大數據融合分析時代,面對海量的數據以及各種複雜的查詢,性能是我們使用一款數據處理引擎最重要的考量。而GaussDB(DWS)服務有著強大的計算引擎,其計算性能優於MR ...
  • 近日,以“Data+AI,構建新質生產力”為主題的袋鼠雲春季發佈會圓滿落幕,大會帶來了一系列“+AI”的數字化產品與最新行業沉澱,旨在將數據與AI緊密結合,打破傳統的生產力邊界,賦能企業實現更高質量、更高效率的數字化發展。會上,袋鼠雲業務總經理申杭帶來了以“指標+AI:邁向智能化,讓指標應用更高效” ...
一周排行
    -Advertisement-
    Play Games
  • 概述:本文代碼示例演示瞭如何在WPF中使用LiveCharts庫創建動態條形圖。通過創建數據模型、ViewModel和在XAML中使用`CartesianChart`控制項,你可以輕鬆實現圖表的數據綁定和動態更新。我將通過清晰的步驟指南包括詳細的中文註釋,幫助你快速理解並應用這一功能。 先上效果: 在 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • openGauss(GaussDB ) openGauss是一款全面友好開放,攜手伙伴共同打造的企業級開源關係型資料庫。openGauss採用木蘭寬鬆許可證v2發行,提供面向多核架構的極致性能、全鏈路的業務、數據安全、基於AI的調優和高效運維的能力。openGauss深度融合華為在資料庫領域多年的研 ...
  • 概述:本示例演示了在WPF應用程式中實現多語言支持的詳細步驟。通過資源字典和數據綁定,以及使用語言管理器類,應用程式能夠在運行時動態切換語言。這種方法使得多語言支持更加靈活,便於維護,同時提供清晰的代碼結構。 在WPF中實現多語言的一種常見方法是使用資源字典和數據綁定。以下是一個詳細的步驟和示例源代 ...
  • 描述(做一個簡單的記錄): 事件(event)的本質是一個委托;(聲明一個事件: public event TestDelegate eventTest;) 委托(delegate)可以理解為一個符合某種簽名的方法類型;比如:TestDelegate委托的返回數據類型為string,參數為 int和 ...
  • 1、AOT適合場景 Aot適合工具類型的項目使用,優點禁止反編 ,第一次啟動快,業務型項目或者反射多的項目不適合用AOT AOT更新記錄: 實實在在經過實踐的AOT ORM 5.1.4.117 +支持AOT 5.1.4.123 +支持CodeFirst和非同步方法 5.1.4.129-preview1 ...
  • 總說周知,UWP 是運行在沙盒裡面的,所有許可權都有嚴格限制,和沙盒外交互也需要特殊的通道,所以從根本杜絕了 UWP 毒瘤的存在。但是實際上 UWP 只是一個應用模型,本身是沒有什麼許可權管理的,許可權管理全靠 App Container 沙盒控制,如果我們脫離了這個沙盒,UWP 就會放飛自我了。那麼有沒... ...
  • 目錄條款17:讓介面容易被正確使用,不易被誤用(Make interfaces easy to use correctly and hard to use incorrectly)限制類型和值規定能做和不能做的事提供行為一致的介面條款19:設計class猶如設計type(Treat class de ...
  • title: 從零開始:Django項目的創建與配置指南 date: 2024/5/2 18:29:33 updated: 2024/5/2 18:29:33 categories: 後端開發 tags: Django WebDev Python ORM Security Deployment Op ...
  • 1、BOM對象 BOM:Broswer object model,即瀏覽器提供我們開發者在javascript用於操作瀏覽器的對象。 1.1、window對象 視窗方法 // BOM Browser object model 瀏覽器對象模型 // js中最大的一個對象.整個瀏覽器視窗出現的所有東西都 ...