我想将数据库名称分配给声明的变量,这就是我已经尝试过的方法:
DECLARE @DBname VARCHAR(100)
SET @DBname = 'PatientTurningSystem'
SELECT TABLE_NAME, TABLE_TYPE
FROM @DBname.INFORMATION_SCHEMA.TABLES
但我收到以下错误:
Msg 102,Level 15,State 1,Procedure SP_TableDeatails,Line 8
'附近的语法不正确。'
答案 0 :(得分:3)
您可以尝试以下查询
DECLARE @DBname VARCHAR(MAX)
DECLARE @SQL VARCHAR(MAX)
SET @DBname = 'PatientTurningSystem'
SET @SQL = 'SELECT TABLE_NAME, TABLE_TYPE
FROM ' +@DBname+'.INFORMATION_SCHEMA.TABLES'
EXEC (@SQL)
答案 1 :(得分:0)
DECLARE @DBname VARCHAR
DECLARE @QUERY VARCHAR(255)
SET @DBname = 'PatientTurningSystem'
SET @QUERY = 'SELECT TABLE_NAME, TABLE_TYPE
FROM '+@DBname+'.INFORMATION_SCHEMA.TABLES'
EXEC @QUERY
答案 2 :(得分:0)
我可能会误解您的问题,但是我使用以下脚本来查找database_name并将其设置为变量值,以便在下游活动中使用。在这种情况下,为避免以后与语法相关的任何错误(使用AWS RDS数据库名称括起来),我在名称周围添加了“ []”。
在这种情况下,您只需要将脚本寻找的Like '%BCI%'
更改为所需的值即可。
Declare @DBnameis VARCHAR(30)
Declare @DBname VARCHAR(30)
Set @DBnameis = (select [name] as database_name
from sys.databases
Where [name] Like '%BCI%')
Select @DBnameis
Set @DBname = '['+@DBnameis+']'