2016-07-15 44 views
0

我想在SQL Server中使用帶有「use」語句的本地變量。我搜索,但沒有得到妥善解決。在SQL Server中使用本地變量和「use」語句

declare @var varchar(100) 
    set @var = 'DB1' 
    use @var 
+0

'use'需要一個數據庫名稱,而不是一個字符串。 – thebjorn

+1

[sql使用語句與變量]可能重複(http://stackoverflow.com/questions/1037174/sql-use-statement-with-variable) –

+1

您可以使用'動態SQL'或硬編碼'IF'語句。 –

回答

0

嘗試這樣,

DECLARE @var VARCHAR(100) 
    ,@SQL NVARCHAR(max) = '' 

SET @var = 'DBRND' 
SET @sql = 'select name From ' + @var + '.sys.procedures' 

EXEC SP_EXECUTESQL @SQL 
+0

值得一提的是'DB1'只能在動態查詢的會話中訪問 –

+0

這是行得通的。但它並沒有解決我的問題。 我正在寫一個將數據庫名稱作爲參數的過程,它將打印該數據庫的所有列表過程。 我從sys.procedures表中獲取所需的信息。 但我被困在如何使用數據庫名稱,我將作爲參數傳遞給「使用」語句內的SP。 –

+0

我編輯了我的帖子。現在試試這個 – StackUser