# SQL Server創建數據庫的方法
## 1. 前言
Microsoft SQL Server 是微軟公司開發的關系型數據庫管理系統(RDBMS),廣泛應用于企業級數據管理。創建數據庫是使用 SQL Server 的第一步,也是數據庫管理的基礎操作。本文將詳細介紹在 SQL Server 中創建數據庫的多種方法,包括使用圖形界面(SSMS)、T-SQL 語句以及 PowerShell 腳本等方式。
## 2. 準備工作
在開始創建數據庫之前,需要確保:
1. 已安裝 SQL Server(任何受支持的版本)
2. 已安裝 SQL Server Management Studio (SSMS)
3. 擁有足夠的系統權限(通常需要 sysadmin 或 dbcreator 服務器角色)
## 3. 使用 SQL Server Management Studio (SSMS) 創建數據庫
### 3.1 通過圖形界面創建
1. **連接服務器**
- 打開 SSMS
- 在"連接到服務器"對話框中輸入服務器名稱和身份驗證信息
- 點擊"連接"
2. **啟動創建向導**
- 在對象資源管理器中,右鍵點擊"數據庫"文件夾
- 選擇"新建數據庫"
3. **配置數據庫選項**
```plaintext
- 常規頁:
* 數據庫名稱:輸入有意義的名稱(如 SalesDB)
* 所有者:默認為當前用戶,可點擊"..."按鈕更改
* 使用全文索引:根據需要勾選
- 文件頁:
* 數據文件:設置初始大小、自動增長等參數
* 日志文件:同樣配置大小和增長參數
- 選項頁:
* 恢復模式:完整/簡單/大容量日志
* 兼容性級別:選擇SQL Server版本
* 其他高級選項
對于需要頻繁創建相似結構的數據庫: 1. 創建第一個數據庫后,右鍵選擇”腳本數據庫為” → “CREATE到” → “新查詢編輯器窗口” 2. 保存此腳本作為模板 3. 下次創建時修改相應參數即可
CREATE DATABASE database_name
[ ON
[ PRIMARY ] <filespec> [ ,...n ]
[ , <filegroup> [ ,...n ] ]
]
[ LOG ON <filespec> [ ,...n ] ]
[ COLLATE collation_name ]
[ WITH <option> [ ,...n ] ]
-- 最簡單的創建語句
CREATE DATABASE TestDB;
CREATE DATABASE InventoryDB
ON PRIMARY
(
NAME = 'InventoryDB_Data',
FILENAME = 'C:\SQLData\InventoryDB.mdf',
SIZE = 50MB,
MAXSIZE = 500MB,
FILEGROWTH = 25MB
)
LOG ON
(
NAME = 'InventoryDB_Log',
FILENAME = 'C:\SQLLogs\InventoryDB.ldf',
SIZE = 25MB,
MAXSIZE = 250MB,
FILEGROWTH = 10MB
)
COLLATE SQL_Latin1_General_CP1_CI_AS
WITH
DB_CHNING OFF,
TRUSTWORTHY OFF;
CREATE DATABASE SalesDB
ON PRIMARY
(
NAME = 'SalesDB_Primary',
FILENAME = 'D:\Data\SalesDB_Prm.mdf',
SIZE = 100MB,
MAXSIZE = 1GB,
FILEGROWTH = 50MB
),
FILEGROUP SalesData
(
NAME = 'SalesDB_Data1',
FILENAME = 'D:\Data\SalesDB_1.ndf',
SIZE = 200MB,
MAXSIZE = 2GB,
FILEGROWTH = 100MB
),
(
NAME = 'SalesDB_Data2',
FILENAME = 'E:\Data\SalesDB_2.ndf',
SIZE = 200MB,
MAXSIZE = 2GB,
FILEGROWTH = 100MB
)
LOG ON
(
NAME = 'SalesDB_Log',
FILENAME = 'F:\Logs\SalesDB.ldf',
SIZE = 100MB,
MAXSIZE = 1GB,
FILEGROWTH = 10%
);
CREATE DATABASE ContainedDB
WITH CONTNMENT = PARTIAL;
CREATE DATABASE InMemoryDB
ON PRIMARY
(
NAME = 'InMemoryDB_Data',
FILENAME = 'C:\Data\InMemoryDB.mdf'
),
FILEGROUP InMemoryDB_FG CONTNS MEMORY_OPTIMIZED_DATA
(
NAME = 'InMemoryDB_FG',
FILENAME = 'C:\Data\InMemoryDB_FG'
)
LOG ON
(
NAME = 'InMemoryDB_Log',
FILENAME = 'C:\Logs\InMemoryDB.ldf'
);
CREATE DATABASE BrokerDB
WITH ENABLE_BROKER;
Import-Module SqlServer
$sql = "CREATE DATABASE PowerShellDB"
Invoke-Sqlcmd -Query $sql -ServerInstance "YourServerName"
$dbName = "PSDB"
$dataPath = "C:\SQLData\"
$logPath = "C:\SQLLogs\"
$query = @"
CREATE DATABASE [$dbName] ON PRIMARY
(
NAME = N'${dbName}_Data',
FILENAME = N'${dataPath}${dbName}.mdf',
SIZE = 50MB,
MAXSIZE = UNLIMITED,
FILEGROWTH = 10MB
)
LOG ON
(
NAME = N'${dbName}_Log',
FILENAME = N'${logPath}${dbName}_Log.ldf',
SIZE = 25MB,
MAXSIZE = 1GB,
FILEGROWTH = 10%
)
"@
Invoke-Sqlcmd -Query $query -ServerInstance "YourServerName"
ALTER DATABASE YourDB SET
RECOVERY FULL,
PAGE_VERIFY CHECKSUM,
AUTO_UPDATE_STATISTICS ON;
USE YourDB
GO
CREATE SCHEMA Sales AUTHORIZATION dbo;
GO
CREATE USER AppUser FOR LOGIN AppLogin;
GO
GRANT SELECT, INSERT, UPDATE ON SCHEMA::Sales TO AppUser;
GO
錯誤:CREATE DATABASE permission denied in database ‘master’ 解決:使用具有足夠權限的賬戶或請求管理員授予dbcreator角色
錯誤:Could not allocate space for database 解決:清理磁盤空間或指定其他有足夠空間的路徑
錯誤:Database ‘YourDB’ already exists 解決:選擇其他名稱或先刪除現有數據庫
錯誤:The path specified is invalid 解決:確保路徑存在且SQL Server服務賬戶有寫入權限
將常用創建腳本保存為模板文件,使用時修改參數
:setvar dbname "ProdDB"
:setvar datapath "E:\SQLData\"
CREATE DATABASE $(dbname) ON PRIMARY
(
NAME = N'$(dbname)_Data',
FILENAME = N'$(datapath)$(dbname).mdf'
)
LOG ON
(
NAME = N'$(dbname)_Log',
FILENAME = N'$(datapath)$(dbname)_Log.ldf'
)
GO
在SQL Server中創建數據庫是數據庫管理的基本操作,掌握多種創建方法可以適應不同的工作場景。無論是簡單的圖形界面操作,還是復雜的T-SQL腳本,或是自動化的PowerShell方法,都應該根據實際需求選擇最合適的方式。遵循最佳實踐可以確保創建的數據庫具有良好的性能和可維護性。
”`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。