连接数据库中的表值

发布于 2024-11-30 08:03:19 字数 275 浏览 1 评论 0原文

我有一个表,其中保存了 id 与连接表的实际名称的关系,我需要能够使用 ID 值获取实际的表名称。示例:

TableID    TableName
1          Test.Customers
2          Test.Orders
3          Test.Addresses

因此能够传入 ID 1 并返回“Customers”,并能够使用它来“SELECT * FROM Customers”。执行此操作的最佳方法是什么?该存储过程是什么样的?

I have a table that holds a relationship of the id to the actual name of the joining table, I need to be able to get the actual table name out with an ID value. example:

TableID    TableName
1          Test.Customers
2          Test.Orders
3          Test.Addresses

So to be able to pass in the ID of 1 and come back with "Customers" and to be able to use that to "SELECT * FROM Customers". What's the best approach to do this? What would that stored procedure look like?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

套路撩心 2024-12-07 08:03:19

您需要使用动态 SQL,例如:

CREATE PROCEDURE dbo.MyProc (@ID int)
AS

DECLARE @SQL Varchar(1000) = ''

SELECT @SQL = 'SELECT * FROM ' + QUOTENAME(TableName)
FROM MyLookupTable
WHERE TableID = @ID

EXEC (@SQL)

非常非常小心使用动态 SQL,并在继续之前阅读本文。

You need to use Dynamic SQL, Like:

CREATE PROCEDURE dbo.MyProc (@ID int)
AS

DECLARE @SQL Varchar(1000) = ''

SELECT @SQL = 'SELECT * FROM ' + QUOTENAME(TableName)
FROM MyLookupTable
WHERE TableID = @ID

EXEC (@SQL)

Be very very very careful with Dynamic SQL, and read this before proceeding.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文