Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server:Aktuelle Datenbank über Variable ändern

Ausführen von USE some_db in dynamischem SQL funktioniert, aber leider wird der Datenbankkontext wieder auf den ursprünglichen geändert, wenn der Gültigkeitsbereich beendet wird.

Sie können sqlcmd verwenden Modus dafür (aktivieren Sie dies im Menü "Abfrage" in 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