我有一個表tbl_Info
:如何動態地決定在SQL Server存儲過程加入哪些表
InfoId
Text
PrivacyTypeId
UserName
TypeId
IsInfo
InfoItemId
數據示例:
1|Some text...|1|userX|1|False|NULL
2|New job created|1|system|3|True|765
3|Image commented|1|system|4|True|457
在我的應用我從這個表中的所有值我將它們顯示爲一個列表。
應用程序用戶可以點擊這些項目中的每一個,並且它們應該被重定向到應用程序的某個地方。
我有一些數據庫中的表綁定到這個表,但是這個連接是非常動態的。例如,這表:
tbl_Jobs{JobId, Title etc.}, tbl_Articles{ArticleId, Title etc.}
這裏的問題是:
之前,我加入IsInfo
和InfoItemId
我只有一個類型,用戶進入該相關信息和所有我需要的是讓信息欄+用戶全名:
select i.*, p.FirstName + ' ' + p.LastName as Author
from tbl_Info i
left join tbl_Profiles p on i.UserName = p.UserName
where i.PrivacyTypeId = 1
現在我需要改變這個Author
柱,Title
名和這個值應該是:全名或職位或文章標題等
我不知道是否可以做出選擇程序,以便它可以基於IsInfo
和TypeId
從ID爲InfoItemId
的另一個表中獲得項目標題。
所以像這樣:如果IsInfo = True。獲取typeId。並基於此類型ID加入某個表並從中獲取一些列。
IF typeId = 2 ... join tbl_Jobs on ...
IF typeId = 3 ... join tbl_Articles on ...
對不起,我稍微抱歉。但是我找不到解決方案,我需要更詳細地解釋問題。
爲什麼你用'tbl_'加前綴?一切都是一張桌子,所以在它前面加上無用的噪音。它還可以提供更好的維護(如果DBA決定用新表替換其中一個表,比如說)。所有我需要知道的是,如果我問一個給定的數據結構,它以適當的格式的一組數據的迴應 - 我不應該需要關心數據結構是如何設置。 – 2012-01-06 21:17:32
我曾在一家公司,這是命名約定。這是在我的血液裏2年。但你是對的,它不會改變它:) – 1110 2012-01-06 21:39:42