我想在SQL Server中使用带有“use”语句的本地变量。我搜索,但没有得到妥善解决。在SQL Server中使用本地变量和“use”语句
declare @var varchar(100)
set @var = 'DB1'
use @var
我想在SQL Server中使用带有“use”语句的本地变量。我搜索,但没有得到妥善解决。在SQL Server中使用本地变量和“use”语句
declare @var varchar(100)
set @var = 'DB1'
use @var
尝试这样,
DECLARE @var VARCHAR(100)
,@SQL NVARCHAR(max) = ''
SET @var = 'DBRND'
SET @sql = 'select name From ' + @var + '.sys.procedures'
EXEC SP_EXECUTESQL @SQL
值得一提的是'DB1'只能在动态查询的会话中访问 –
这是行得通的。但它并没有解决我的问题。 我正在写一个将数据库名称作为参数的过程,它将打印该数据库的所有列表过程。 我从sys.procedures表中获取所需的信息。 但我被困在如何使用数据库名称,我将作为参数传递给“使用”语句内的SP。 –
我编辑了我的帖子。现在试试这个 – StackUser
'use'需要一个数据库名称,而不是一个字符串。 – thebjorn
[sql使用语句与变量]可能重复(http://stackoverflow.com/questions/1037174/sql-use-statement-with-variable) –
您可以使用'动态SQL'或硬编码'IF'语句。 –