2016-07-31 76 views
1

我的問題是關於動態SQL。我有兩個表SQL Server中的動態SQL - 如何?

  • 客戶(客戶ID,fn_name,Ln_name)
  • 供應商(VENDOR_ID,CUSTID,ORDERNUM,訂購日期)

而且我也有其他的表

  • 表(tableid(pk),name)
  • table_col(colid(pk),tableid(fk),colname)
  • 個table_keys(KEY_ID,TABLEID,key_col_name)

現在,如果用戶從table_col表中選擇任一列,動態我需要的列名,並動態地識別來自table_keys基於名稱匹配的連接。

回答

0

可能是有些事情是這樣

select 
    t.name 
    , c.colname 
    , case k.key_col_name when not null then 'X' else '' end as iskey 
from table_col as c 
left join table_keys as k on k.key_col_name = c.colname 
inner join table as t on t.tableid = c.tableid 
where t.name in ('customers', 'vendors');