在 SQL 服务器中通过 SQL 将数据库名称分配给变量
Assign a database name into the variable via SQL in SQL server
我想将数据库名称分配给声明的变量,这就是我已经尝试过的方式:
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
Incorrect syntax near '.'
DECLARE @DBname VARCHAR
DECLARE @QUERY VARCHAR(255)
SET @DBname = 'PatientTurningSystem'
SET @QUERY = 'SELECT TABLE_NAME, TABLE_TYPE
FROM '+@DBname+'.INFORMATION_SCHEMA.TABLES'
EXEC @QUERY
您可以尝试以下查询
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)
我可能误解了你的问题,但我使用以下脚本查找 database_name 并将其设置为下游 activity 中使用的变量值。在这种情况下,为了避免以后出现与语法相关的任何错误(使用 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+']'
我想将数据库名称分配给声明的变量,这就是我已经尝试过的方式:
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
Incorrect syntax near '.'
DECLARE @DBname VARCHAR
DECLARE @QUERY VARCHAR(255)
SET @DBname = 'PatientTurningSystem'
SET @QUERY = 'SELECT TABLE_NAME, TABLE_TYPE
FROM '+@DBname+'.INFORMATION_SCHEMA.TABLES'
EXEC @QUERY
您可以尝试以下查询
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)
我可能误解了你的问题,但我使用以下脚本查找 database_name 并将其设置为下游 activity 中使用的变量值。在这种情况下,为了避免以后出现与语法相关的任何错误(使用 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+']'