2008-09-23 9 views

risposta

30

Quando si crea il nuovo database si specifica la posizione. Per esempio:

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

dal server Libri SQL un esempio in cui i nomi dei file di database vengono esplicitamente definiti:

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 
1
  1. Crea cartella del file system: D: \ temp \ DBFolder \
  2. Eseguire lo script:

    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 
    
.210
0

Vedi questo link: 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 %) 
0

Crea cartella del file system: D: \ temp \ DBFolder \ ed eseguire lo script di seguito (provate 'sa' di login)

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%) 
2

Utilizzando variabili in Studio Manager che espandono gli esempi precedenti.

Creare cartelle e sottocartelle.
Esempio: cartella principale E: \ MSSQL \ DATA sottocartelle E: \ MSSQL \ DATA \ DB e E: \ MSSQL \ DATA \ Logs.

MKDIR "E:\MSSQL\DATA\DB" 
MKDIR "E:\MSSQL\DATA\Logs" 

Cambia database nome @DBNAME @Test_DB variabile' al vostro 'DesiredName_DB'

Change Root cartella percorso @DataPath 'E: \ MSSQL \ DATA' ai tuoi di cui al precedente cartelle create.

Eseguire il seguito in 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) 

O un'altra variazione sul tema di cui sopra.

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) 
Problemi correlati