SQL Server: изменить текущую базу данных через переменную
Я использую SQL Server 2008 и пытаюсь изменить текущее имя базы данных на одно в переменной. Я обычно делаю это явно со статиейUSE myDatabaseName
, Вопрос возникает потому, что если я запускаю скрипт и не изменяю имя базы данных, он создает все таблицы в[master]
база данных.
Я попробовал следующее, но, похоже, не работает, поскольку он продолжает применять остальную частьcreate tables
коды к[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