2014-12-04 60 views
1

運行腳本 - 檢查,如果SQL Server 2008數據庫存在,如果不是(USE Database運行腳本 - 檢查一個SQL Server 2008數據庫存在,更換,如果沒有(USE數據庫)

我運行很多的腳本替換的服務器。然而,一些數據庫名稱並不總是相同的,因此,我們需要編輯「使用的數據庫」

if DB_ID('sports') is not null -- check to see if exists 
    use sports 
else 
    use SportsLive`-- use the correct one 

總是一個是不會存在......

消息911,級別16,狀態1,第15行
數據庫'SportsLive'不存在。確保名稱輸入正確。

解決方法?

回答

0

使用[XXX]必須在代碼的開始,使

,如果你有什麼要使用此查詢

你需要把代碼的其它部分一起

與「使用[ XXX] ...」像例如

DECLARE @i nvarchar(50) 
DECLARE @a nvarchar(50) 
SET @i =DB_NAME(coalesce((db_id('sports')),(db_id('SportsLive')))) 
SELECT @i 
SET @a= 'USE ['[email protected]+'] 
select * from [your table]' 
EXEC (@a) 
+0

對不起杜迪·沒有工作 - 我認爲這是一個很難的...... USE執行數據庫時,我的exe不會更改數據庫 – Rosebud 2014-12-05 19:04:05

+0

好可愛的示例代碼,它工作正常,並確實更改數據庫。但neverminde我會盡快刪除代碼 – 2014-12-05 19:15:11

+0

嗨,除非我做錯了什麼 - 可用的數據庫字段不會改變從主到運動DECLARE @i varchar(10) declare @一個varchar(50) SET @i = '體育' SET @一個= '使用' + @I EXECUTE(@a) PRINT @a – Rosebud 2014-12-05 19:35:16

相關問題