2016-07-15 57 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