Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server :modifier la base de données actuelle via une variable

Exécution de USE some_db en SQL dynamique fonctionne, mais malheureusement, lorsque la portée quitte le contexte de la base de données, il revient à ce qu'il était à l'origine.

Vous pouvez utiliser sqlcmd mode pour cela (activez-le dans le menu "Requête" dans 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