鉴于:
- SQL Server 2008 R2
- SSRS 2008
- 卑微的程序员
考虑两个表:
CREATE TABLE PERSON
(
PersonID INT,
Name VARCHAR(100)
)
CREATE TABLE PERSON_EXTENDED
(
PersonExtendedID INT,
PersonID INT,
DOB DATETIME,
FavoriteColor VARCHAR(100)
)
进一步考虑以下查询连接表,表明它们的关系。
SELECT
*
FROM
PERSON AS P
JOIN PERSON_EXTENDED AS PE ON (P.PersonID = PE.PersonID)
为了给您提供总体概念,我想创建一个存储过程来填充 SSRS 报告的字段选择参数。然后使用选定的参数将其作为参数传递给另一个存储过程,该过程使用选定的字段创建报告。
我的想法最初类似于以下内容,但是产生了两个问题。首先是两个表中 1 和 2 的重复序数。其次是重复的列名“PersonID”。
SELECT
C.COLUMN_NAME,
C.ORDINAL_POSITION
FROM
INFORMATION_SCHEMA.columns AS C
WHERE
C.TABLE_NAME = 'PERSON'
OR C.TABLE_NAME = 'PERSON_EXTENDED'
有什么想法吗?额外的功劳是以可扩展的方式执行此操作并包含某种“显示名称”字段,因此最终用户不必处理 PersonID,但可以处理“个人身份”。