У меня есть две таблицы A и B с динамическими столбцами, в которых я понятия не имею, какие столбцы являются ключевыми внутри них, за исключением другой таблицы с именем C.
Таблица C указывает, какой столбец / столбцы является ключомстолбец в таблицах A и B. Может быть 1 или более ключевых столбцов.
Мой вопрос: как мне сгенерировать такой запрос, когда я выбираю все строки из A, где ключевые столбцы равны одному и тому же ключу?столбцы в б?
У меня была одна идея - создать текстовый запрос, который я выполняю с помощью sp_executesql, но мне нужны хорошие идеи о том, как сгенерировать запрос.
Прежде всего, я бы выбрал все ключистолбцы из таблицы C для таблицы A и B в мою объявленную таблицу @ keyColumns.
Затем я использовал бы цикл while, чтобы просмотреть все ключевые столбцы внутри @keyColumns и сгенерировать запрос и выполнить его с помощью sp_executesql.
Например:
UPDATE A
SET ...
FROM B INNER JOIN A
ON A.keycol1 = B.keycol1 AND A.keycol2 = B.keycol2 AND ...
Просто чтобы прояснить это, таблица C определяет только ключевые столбцы для таблицы B, и, насколько я знаю, A имеет те же ключевые столбцы.
Но я хочу знать, есть ли лучший способ решить эту проблему.