我正在使用SQL Server 2008,並試圖將當前數據庫名稱更改爲變量中的一個。我通常會在USE myDatabaseName
的陳述中明確地做到這一點。 問題出現了,因爲如果我正在運行一個腳本,並且如果我不更改數據庫名稱,它將創建[master]
數據庫中的所有表。SQL Server:通過變量更改當前數據庫
我嘗試了以下方法,但似乎無法正常工作,因爲它始終將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
你是如何運行腳本的? – 2012-02-06 18:52:40
作爲服務器級別的「新查詢」。 – Rick 2012-02-06 18:57:51