如何在指定位置使用 T SQL 脚本创建数据库?假设,我想在D:\temp\dbFolder
. 这该怎么做?
Ngu Soon Hui
问问题
54495 次
6 回答
42
创建新数据库时,您指定位置。例如:
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
于 2008-09-23T13:22:21.880 回答
11
在 SQL Server Books 中,一个明确定义数据库文件名的示例:
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
于 2008-09-23T13:23:05.357 回答
3
- 在文件系统上创建文件夹:D:\temp\dbFolder\
运行脚本:
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
于 2013-07-14T18:53:21.217 回答
2
在 Studio Manager 中使用变量扩展了前面的示例。
创建文件夹和子文件夹。
示例:根文件夹 E:\MSSQL\DATA 子文件夹 E:\MSSQL\DATA\DB 和 E:\MSSQL\DATA\Logs。
MKDIR "E:\MSSQL\DATA\DB"
MKDIR "E:\MSSQL\DATA\Logs"
将数据库名称 @DBNAME 变量 @Test_DB' 更改为您的 'DesiredName_DB'
根据上面创建的文件夹,将根文件夹路径 @DataPath 'E:\MSSQL\DATA' 更改为您的。
在 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)
或上述主题的另一种变体。
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)
于 2017-01-09T12:27:24.803 回答
0
请参阅此链接:创建数据库(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 %)
于 2013-09-06T13:03:28.843 回答
0
在您的文件系统上创建文件夹:D:\temp\dbFolder\ 并运行以下脚本(尝试“sa”登录)
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%)
于 2014-02-04T06:20:03.620 回答