Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server:Altere o banco de dados atual via variável


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