SQLServer中数据库的创建
文章目錄
- 1 數(shù)據(jù)庫分類
- 2 用戶數(shù)據(jù)庫文件的組成
- 3 數(shù)據(jù)庫的創(chuàng)建
- 3.1 創(chuàng)建一個主數(shù)據(jù)文件和一個日志文件
- 3.2 創(chuàng)建多個數(shù)據(jù)文件和日志文件
- 4 分離與附加數(shù)據(jù)庫
- 4.1 分離數(shù)據(jù)庫
- 4.2 附件數(shù)據(jù)庫
1 數(shù)據(jù)庫分類
數(shù)據(jù)庫的類型分為:系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。
2 用戶數(shù)據(jù)庫文件的組成
用戶數(shù)據(jù)庫物理文件的組成包括:數(shù)據(jù)庫文件和日志文件。
數(shù)據(jù)庫文件: .mdf(主數(shù)據(jù)文件)或.ndf(次要數(shù)據(jù)文件)。
日志文件: .ldf。
一個數(shù)據(jù)庫必須且只能包含一個mdf,但可以包含多個ndf和ldf(至少一個)。
3 數(shù)據(jù)庫的創(chuàng)建
3.1 創(chuàng)建一個主數(shù)據(jù)文件和一個日志文件
use master go --創(chuàng)建數(shù)據(jù)庫 create database StudentManageDB on primary (name='StudentManageDB_data',--數(shù)據(jù)庫文件的邏輯名filename='D:\DB\StudentManageDB_data.mdf',--數(shù)據(jù)庫物理文件名(絕對路徑)size=10MB,--數(shù)據(jù)庫文件初始大小filegrowth=5MB --數(shù)據(jù)文件增長量 ) --創(chuàng)建日志文件 log on (name='StudentManageDB_log',filename='D:\DB\StudentManageDB_log.ldf',size=5MB,filegrowth=2MB ) gogo是批處理的標(biāo)志,表示SQL Server將這些SQL語句編譯為一個執(zhí)行單元,提高執(zhí)行效率。一般是將一些邏輯相關(guān)的業(yè)務(wù)操作語句放在同一批中,這完全由業(yè)務(wù)需求和代碼編寫者決定。
go是SQLServer的批處理命令,只有代碼編輯器才能識別并處理,編輯其他應(yīng)用程序就不能使用該命令,由于每個批處理之間是獨立的,因此,在一個批處理出現(xiàn)錯誤時,并不會影響其他批處理中SQL代碼的運行。
3.2 創(chuàng)建多個數(shù)據(jù)文件和日志文件
use master go --判斷當(dāng)前數(shù)據(jù)庫是否存在 if exists(select * from sysdatabases where name='StudentManageDB' ) drop database StudentManageDB go --創(chuàng)建數(shù)據(jù)庫 create database StudentManageDB on primary (name='StudentManageDB_data',--數(shù)據(jù)庫文件的邏輯名filename='D:\DB\StudentManageDB_data.mdf',--數(shù)據(jù)庫物理文件名(絕對路徑)size=10MB,--數(shù)據(jù)庫文件初始大小filegrowth=5MB --數(shù)據(jù)文件增長量 ), (name='StudentManageDB_data1',filename='D:\DB\StudentManageDB_data1.ndf',size=10MB,filegrowth=5MB ) --創(chuàng)建日志文件 log on (name='StudentManageDB_log',filename='D:\DB\StudentManageDB_log.ldf',size=5MB,filegrowth=2MB ), (name='StudentManageDB_log1',filename='D:\DB\StudentManageDB_log1.ldf',size=5MB,filegrowth=2MB ) godrop刪除數(shù)據(jù)庫后將不可恢復(fù),使用要謹(jǐn)慎!
創(chuàng)建多個數(shù)據(jù)庫的另一個示例:
--首先要指向操作的數(shù)據(jù)庫use master go if exists(select * from sysdatabases where name='CourseManageDB') drop database CourseManageDB go --創(chuàng)建數(shù)據(jù)庫 create database CourseManageDB on primary (--數(shù)據(jù)庫的邏輯文件名(就是系統(tǒng)用的,必須唯一)name='CourseManageDB_data1',--數(shù)據(jù)庫物理文件名(絕對路徑)filename='D:\DB\CourseManageDB_data1.mdf',--主數(shù)據(jù)文件名--數(shù)據(jù)庫初始文件大小(一定要根據(jù)你的實際生產(chǎn)需求來定)size=20MB,--數(shù)據(jù)文件增值量(也要參考文件本身大小)filegrowth=1MB ) , ( name='CourseManageDB_data2', filename='D:\DB\CourseManageDB_data2.ndf',--次要數(shù)據(jù)文件名 size=20MB,filegrowth=1MB )log on (name='CourseManageDB_log', filename='D:\DB\CourseManageDB_log.ldf',--日志文件名 size=10MB,filegrowth=1MB ) go4 分離與附加數(shù)據(jù)庫
4.1 分離數(shù)據(jù)庫
在早期版本的數(shù)據(jù)庫系統(tǒng)中,當(dāng)數(shù)據(jù)庫服務(wù)運行中通常情況下無法直接移動和復(fù)制數(shù)據(jù)庫文件。所謂的分離數(shù)據(jù)庫就是將正在使用的數(shù)據(jù)庫文件解除服務(wù)的限制。
語法如下:
exec sp_detach_db @dbname = 數(shù)據(jù)庫名稱4.2 附件數(shù)據(jù)庫
附加數(shù)據(jù)庫就是將指定位置的數(shù)據(jù)庫文件加入到數(shù)據(jù)庫文件中并運行。分離出去的數(shù)據(jù)庫只有附加后,用戶才能通過DBMS操作數(shù)據(jù)。
語法如下:
exec sp_attach_db @dbname=數(shù)據(jù)庫名稱, @filename1=數(shù)據(jù)庫主文件物理文件路徑, @filename2=數(shù)據(jù)庫日志文件物理文件路徑示例代碼:
--分離數(shù)據(jù)庫 exec sp_detach_db @dbname=StudentManageDB --附加數(shù)據(jù)庫方法1 exec sp_attach_db @dbname=StudentManageDB, @filename1='E:\StudentManageDB_data.mdf', @filename2='E:\StudentManageDB_log.ldf'--附加數(shù)據(jù)庫方法2 exec sp_attach_db @dbname=StudentManageDB, 'E:\StudentManageDB_data.mdf', 'E:\StudentManageDB_log.ldf'參考資料:
總結(jié)
以上是生活随笔為你收集整理的SQLServer中数据库的创建的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算器初步添加消息响应
- 下一篇: 刮刮乐中奖率是多少