sql server - significa - Crear una base de datos usando T SQL en una ubicación especificada
replicate sql ejemplos (6)
¿Cómo crear una base de datos utilizando secuencias de comandos T SQL en una ubicación específica? Digamos que quiero crear una base de datos de servidor SQL en D:/temp/dbFolder
. ¿Como hacer esto?
Cuando crea la nueva base de datos, especifica la ubicación. Por ejemplo:
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
De los libros de SQL Server un ejemplo donde los nombres de archivo de la base de datos se definen explícitamente:
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
- Crear carpeta en su sistema de archivos: D: / temp / dbFolder /
Ejecute el 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
Vea este enlace: 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 %)
Cree una carpeta en su sistema de archivos: D: / temp / dbFolder / y ejecute la secuencia de comandos siguiente (intente con el inicio de sesión ''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%)
Usar variables en Studio Manager expandiendo los ejemplos anteriores.
Crear carpetas y subcarpetas.
Ejemplo: carpeta raíz E: / MSSQL / DATA subcarpetas E: / MSSQL / DATA / DB y E: / MSSQL / DATA / Logs.
MKDIR "E:/MSSQL/DATA/DB"
MKDIR "E:/MSSQL/DATA/Logs"
Cambia el nombre de la base de datos @DBNAME variable @Test_DB ''a tu'' DesiredName_DB ''
Cambie la ruta de la carpeta raíz @DataPath ''E: / MSSQL / DATA'' a las carpetas creadas anteriormente.
Ejecute el siguiente en 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)
U otra variación sobre el tema anterior.
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)