2016-07-31 3 views
1

Мой вопрос о динамическом SQL. У меня есть две таблицыДинамический SQL в SQL Server - как?

  • клиентов (CustID, fn_name, Ln_name)
  • поставщики (VENDOR_ID, CustID, ordernum, OrderDate)

А также у меня есть другие таблицы

  • стол (tableid (pk), имя)
  • 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'); 

 Смежные вопросы

  • Нет связанных вопросов^_^