基于现有表字段创建SQL语句

基于现有表字段创建SQL语句,sql,sql-server,Sql,Sql Server,使用数据库和表名填充表后,是否可以基于这些字段创建一些动态查询?比如: DECLARE @mysearch NVARCHAR(MAX)= 'SELECT db_name, tbl_name FROM UserConfig where ID = 1'; SELECT * FROM [db_name]..[tbl_name] db_name和tbl_name是@mysearch查询的结果值 为了澄清起见,我需要从中选择数据的数据库和表名位于表中,而不是硬编码的 例如: SELECT * FROM

使用数据库和表名填充表后,是否可以基于这些字段创建一些动态查询?比如:

DECLARE @mysearch NVARCHAR(MAX)= 'SELECT db_name, tbl_name FROM UserConfig where ID = 1';

SELECT * FROM [db_name]..[tbl_name]
db_name和tbl_name是@mysearch查询的结果值

为了澄清起见,我需要从中选择数据的数据库和表名位于表中,而不是硬编码的

例如:

SELECT * FROM MYDB..MyTable
但是“MYDB”和“MyTable”是存储在其他地方的值


谢谢。

我在这里读了很多文章,但你真的在想这个吗

DECLARE @SQL nvarchar(MAX);
DECLARE @CRLF nchar(2) = NCHAR(13) + NCHAR(10);

SELECT @SQL = N'SELECT *' + @CRLF +
              N'FROM ' + QUOTENAME(db_name) + N'.dbo.' + QUOTENAME(tbl_name) + N';'
FROM UserConfig
WHERE ID = 1;

EXEC sp_executesql @SQL;

假设
UserConfig

表中
ID
的单个值将返回一行
ID
,我在这里读了很多行,但你真的在想这个吗

DECLARE @SQL nvarchar(MAX);
DECLARE @CRLF nchar(2) = NCHAR(13) + NCHAR(10);

SELECT @SQL = N'SELECT *' + @CRLF +
              N'FROM ' + QUOTENAME(db_name) + N'.dbo.' + QUOTENAME(tbl_name) + N';'
FROM UserConfig
WHERE ID = 1;

EXEC sp_executesql @SQL;

假设
UserConfig
表中的
ID
的单个值返回一行
ID

。如何
@mysearch
和后者
选择
关联?您在这里的最终目标是什么?我需要从中“选择*自”的数据库和表名在表中,而不是硬编码的。我不确定我是否遵循这里的要求。如何
@mysearch
和后者
选择
关联?您的最终目标是什么?我需要从中“选择*from”的数据库和表名在一个表中,而不是硬编码。如果该表有多行,该怎么办?什么表,@FilipeYaBaPolido?这假设两者都可以。在本例中,我尝试了“userconfig”,动态查询只返回userconfig中一个表中的数据。因为
ID=1
是一个无规则比较。如果你想在
中使用
,你需要问一个新问题。如果该表有多行怎么办?哪个表,@FilipeYaBaPolido?这假设两者都可以。在本例中,我尝试了“userconfig”,动态查询只返回userconfig中一个表中的数据。因为
ID=1
是一个无规则比较。如果您想让它与
中的
一起使用,您需要问一个新问题。