【发布时间】:2022-01-15 06:56:57
【问题描述】:
我有一个表 dbo.TableNames 有一个 varchar 列 TableName 包含表名:
| Id | TableName |
+-----------+-----------------------+
| 1 | dbo.BookDictionary |
| 2 | dbo.AnotherDictionary |
我很好奇,有没有办法代替写作:
SELECT *
FROM dbo.BookDictionary
这样写:
SELECT *
FROM
(SELECT TableName FROM dbo.TableNames WHERE Id = 1)
【问题讨论】:
-
是的,但您必须为此使用动态 SQL。看看stackoverflow.com/questions/20678725/…
-
如果您正在像这样存储表名,我建议分别存储模式和表名。你的表不叫
dbo.BookDictionary,它叫BookDictionary,它在一个叫dbo的模式上。虽然这有XY Problem 的强烈气味。
标签: sql sql-server tsql