Executando
USE some_db
no SQL dinâmico funciona, mas infelizmente quando o escopo sai, o contexto do banco de dados é alterado de volta ao que era originalmente. Você pode usar
sqlcmd
modo para isso (habilite isso no menu "Consulta" no Management Studio). :setvar dbname "MyNewDatabaseName"
IF DB_ID('$(dbname)') IS NULL
BEGIN
DECLARE @SqlQuery NVARCHAR(1000);
SET @SqlQuery = N'CREATE DATABASE ' + QUOTENAME('$(dbname)') + '
COLLATE SQL_Latin1_General_CP1_CI_AS'
EXEC(@SqlQuery)
END
GO
USE $(dbname)
GO