Sql 在运行时获取值

Sql 在运行时获取值,sql,Sql,有人能告诉我怎么做吗 declare @test varchar(20) set @test ='DatabaseName' select b.* from @test.dbo.Table_Name 这里我从变量中提取数据库,并在查询中使用它 应该这样做吗?使用Exec命令或Sp\u executesql,因为您正在构建动态查询 是否可能重复?取决于我们在这里谈论的是MySQL还是not@AbhijithNayak“返回添加了分隔符的Unicode字符串,以使输入字符串成为有效的SQL

有人能告诉我怎么做吗

declare @test varchar(20)
set @test ='DatabaseName'

select b.* from @test.dbo.Table_Name  
这里我从变量中提取数据库,并在查询中使用它


应该这样做吗?

使用
Exec
命令或
Sp\u executesql
,因为您正在构建动态查询

是否可能重复?取决于我们在这里谈论的是MySQL还是not@AbhijithNayak“返回添加了分隔符的Unicode字符串,以使输入字符串成为有效的SQL Server分隔标识符”@AbhijithNayak“您可以使用quotename()防止SQL注入”
declare @test varchar(20)
set @test ='DatabaseName'

declare @SQL nvarchar(max)
set @SQL = 'select b.* from '+quotename(@test)+'.dbo.Table_Name as b'

exec (@SQL)