Làm thế nào để tạo một cơ sở dữ liệu bằng cách sử dụng kịch bản lệnh T SQL trên một vị trí được chỉ định? Giả sử, tôi muốn tạo một cơ sở dữ liệu máy chủ SQL trên D:\temp\dbFolder
. làm như thế nào?Tạo một cơ sở dữ liệu bằng cách sử dụng T SQL trên một vị trí xác định
Trả lời
Khi bạn tạo cơ sở dữ liệu mới, bạn chỉ định vị trí. Ví dụ:
USE [master]
GO
CREATE DATABASE [AdventureWorks] ON PRIMARY
(NAME = N'AdventureWorks_Data', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Data.mdf' , SIZE = 167872KB , MAXSIZE = UNLIMITED, FILEGROWTH = 16384KB)
LOG ON
(NAME = N'AdventureWorks_Log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\AdventureWorks_Log.ldf' , SIZE = 2048KB , MAXSIZE = 2048GB , FILEGROWTH = 16384KB)
GO
Từ SQL Server Books một ví dụ nơi tên tập tin cơ sở dữ liệu được explicitely định nghĩa:
USE master
GO
CREATE DATABASE Sales
ON
(NAME = Sales_dat,
FILENAME = 'c:\program files\microsoft sql server\mssql\data\saledat.mdf',
SIZE = 10,
MAXSIZE = 50,
FILEGROWTH = 5)
LOG ON
(NAME = 'Sales_log',
FILENAME = 'c:\program files\microsoft sql server\mssql\data\salelog.ldf',
SIZE = 5MB,
MAXSIZE = 25MB,
FILEGROWTH = 5MB)
GO
- Tạo thư mục trên hệ thống tập tin của bạn: D: \ temp \ dbFolder \
Chạy tập lệnh:
USE master; GO CREATE DATABASE TestDB1 ON (NAME = Sales_dat, FILENAME = 'D:\temp\dbFolder\TestDB1.mdf') LOG ON (NAME = Sales_log, FILENAME = 'D:\temp\dbFolder\TestDB1.ldf'); GO
Xem liên kết này: CREATE DATABASE (Transact-SQL)
CREATE DATABASE [ADestinyDb] CONTAINMENT = NONE ON PRIMARY
(NAME = N'ADestinyDb',
FILENAME = N'D:\temp\dbFolder\ADestinyDb.mdf' ,
SIZE = 3136 KB , MAXSIZE = UNLIMITED,
FILEGROWTH = 1024 KB)
LOG ON
(NAME = N'ADestinyDb_log',
FILENAME = N'D:\temp\dbFolder\_log.ldf' ,
SIZE = 832KB , MAXSIZE = 2048 GB , FILEGROWTH = 10 %)
Tạo thư mục trên hệ thống tập tin của bạn: D: \ temp \ dbFolder \ và chạy kịch bản dưới đây (thử 'sa' đăng nhập)
USE master
CREATE DATABASE [faltu] ON PRIMARY
(NAME = N'faltu', FILENAME = N'D:\temp\dbFolder\faltu.mdf' , SIZE = 2048KB , FILEGROWTH = 1024KB)
LOG ON
(NAME = N'faltu_log', FILENAME = N'D:\temp\dbFolder\faltu_log.ldf' , SIZE = 1024KB , FILEGROWTH = 10%)
Sử dụng các biến trong Trình quản lý Studio mở rộng trên các ví dụ trước.
Tạo thư mục và thư mục con.
Ví dụ: thư mục gốc E: \ MSSQL \ DATA thư mục con E: \ MSSQL \ DATA \ DB và E: \ MSSQL \ DATA \ Logs.
MKDIR "E:\MSSQL\DATA\DB"
MKDIR "E:\MSSQL\DATA\Logs"
Thay đổi cơ sở dữ liệu tên @DBNAME biến @Test_DB' để bạn 'DesiredName_DB'
Thay đổi đường dẫn thư mục gốc @DataPath 'E: \ MSSQL \ Data' để theo trên thư mục được tạo của bạn.
Chạy dưới đây trong Studio Manager
DECLARE @DBNAME VARCHAR(MAX)
DECLARE @DataPath AS NVARCHAR(MAX)
DECLARE @sql VARCHAR(MAX)
SET @DBNAME = N'Test_DB'
SET @DataPath = N'E:\MSSQL\DATA'
SELECT @sql = 'USE MASTER'
EXEC (@sql)
SELECT @sql = 'CREATE DATABASE '+ quotename(@DBNAME) + '
ON
PRIMARY
(
NAME = ''' + @DBNAME + '_DB'',
FILENAME = ''' + @DataPath + '\DB\' + @DBNAME + '.mdf'',
SIZE = 3136 KB , MAXSIZE = UNLIMITED,
FILEGROWTH = 1024 KB
)
LOG ON
(
NAME = '''+ @DBNAME + '_Log'',
FILENAME = '''+ @DataPath + '\Logs\' + @DBNAME + '_log.ldf'',
SIZE = 832KB , MAXSIZE = 2048 GB , FILEGROWTH = 10 %
)'
EXEC (@sql)
Hoặc một biến thể về chủ đề trên.
DECLARE @DBNAME VARCHAR(MAX)
DECLARE @DataFilePath AS NVARCHAR(MAX)
DECLARE @LogFilePath AS NVARCHAR(MAX)
DECLARE @sql VARCHAR(MAX)
SET @DBNAME = N'Test_DB'
SET @DataFilePath = N'E:\MSSQL\DATA\DB\'
SET @LogFilePath = N'E:\MSSQL\DATA\Logs\'
SELECT @sql = 'USE MASTER'
EXEC (@sql)
SELECT @sql = 'CREATE DATABASE '+ quotename(@DBNAME) + '
ON
PRIMARY
(
NAME = ''' + @DBNAME + '_DB'',
FILENAME = ''' + @DataFilePath + @DBNAME + '.mdf'',
SIZE = 3136 KB , MAXSIZE = UNLIMITED,
FILEGROWTH = 1024 KB
)
LOG ON
(
NAME = '''+ @DBNAME + '_Log'',
FILENAME = '''+ @LogFilePath+ @DBNAME + '_log.ldf'',
SIZE = 832KB , MAXSIZE = 2048 GB , FILEGROWTH = 10 %
)'
EXEC (@sql)