Estoy usando SQL Server 2008 y estoy tratando de cambiar el nombre de la base de datos actual por uno en una variable. Normalmente hago esto explícitamente con la declaración USE myDatabaseName
. La pregunta surge porque si estoy ejecutando un script y si no cambio el nombre de la base de datos, crea todas las tablas en la base de datos [master]
.SQL Server: Cambiar la base de datos actual a través de la variable
Intenté lo siguiente pero no parece funcionar ya que sigue aplicando el resto de los códigos create tables
a [master]
.
DECLARE @dbName CHAR(50)
DECLARE @SqlQuery varchar(50)
SET @dbName = 'MyNewDatabaseName'
IF NOT EXISTS (SELECT * FROM sys.databases WHERE name = @dbName)
BEGIN
SELECT @SqlQuery = 'CREATE DATABASE ' + @dbName + 'COLLATE SQL_Latin1_General_CP1_CI_AS'
EXEC(@SqlQuery)
END
Select @SqlQuery = 'Use ' + @dbName
EXEC(@SqlQuery)
go
¿cómo está ejecutando el script? –
Como una 'nueva consulta' en el nivel del servidor. – Rick