【问题标题】:Joining on table value in database加入数据库中的表值
【发布时间】:2011-08-17 15:46:40
【问题描述】:

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

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

所以能够传入 ID 1 并返回“客户”并能够使用它来“选择 * FROM 客户”。这样做的最佳方法是什么?该存储过程会是什么样子?

【问题讨论】:

    标签: sql stored-procedures dynamic-sql


    【解决方案1】:

    你需要使用动态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,and read this before proceeding.

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      相关资源
      最近更新 更多