2013-11-28 90 views
1

我可以去這樣如何選擇數據庫中動態

USE SELECT databasename from databasenametable 

或類似的東西?

,而不是做選擇,然後投入使用的語句的價值?我嘗試了圍繞選擇的括號,並沒有工作。上述也沒有工作。我不會知道還有什麼如果您正在使用SQL Server做

回答

2

USE聲明應該得到數據庫名稱顯式值:

USE [databasename] 

如果你堅持動態做這個的,你可以使用動態SQL:

DECLARE @db AS NVARCHAR(258); 
SET @db = QUOTENAME(N'Pubs'); -- put whatever you want here.. 
EXEC(N'USE ' + @db); 
GO 
+0

所以我不能做問什麼IM。我得到了一堆數據庫,我知道基於查詢我想使用哪一個。我想把這個查詢放在我的使用聲明中,而不是給它一個明確的值 – dwarf

+0

@ user2070677 - 看我的編輯 –

0

如果您只需要在另一個數據庫中執行一個語句,另一種選擇可能是這樣的:

declare @sql nvarchar(500) 
declare @yourDatabaseName nvarchar(50) = 'junk' 
declare @yourQuery NVARCHAR(200) = 'select * from someTable' 
set @sql = @yourDatabaseName + '..sp_executesql N''' + @yourQuery + '''' 
EXEC (@sql) 
相關問題