Создать базу данных с использованием T SQL в указанном месте - PullRequest
16 голосов
/ 23 сентября 2008

Как создать базу данных с использованием сценария T SQL в указанном месте? Допустим, я хочу создать базу данных сервера SQL на D:\temp\dbFolder. Как это сделать?

Ответы [ 6 ]

34 голосов
/ 23 сентября 2008

При создании новой базы данных вы указываете местоположение. Например:

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
10 голосов
/ 23 сентября 2008

Из 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
3 голосов
/ 14 июля 2013
  1. Создать папку в вашей файловой системе: D: \ temp \ dbFolder \
  2. Запустить скрипт:

    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
    
2 голосов
/ 09 января 2017

Использование переменных в 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)
0 голосов
/ 04 февраля 2014

Создайте папку в вашей файловой системе: 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%)
0 голосов
/ 06 сентября 2013

См. Ссылку: 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 %)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...