Sto utilizzando SQL Server 2008 e sto cercando di modificare il nome del database corrente in uno in una variabile. Normalmente lo faccio esplicitamente con la dichiarazione USE myDatabaseName
. La domanda sorge perché se sto eseguendo uno script e se non cambio il nome del database, crea tutte le tabelle nel database [master]
.SQL Server: modifica del database corrente tramite la variabile
Ho provato quanto segue ma non sembra funzionare in quanto continua ad applicare il resto dei codici 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
come stai eseguendo la sceneggiatura? –
Come una 'nuova query' a livello di server. – Rick