У меня есть две таблицы с отношением «один к одному». Таблица 1 имеет составной первичный ключ, состоящий из 4 столбцов. Внешний ключ таблицы 2 установлен в первичный ключ таблицы1.Можете ли вы использовать INNER JOIN с первичным ключом?
Когда я пытаюсь следующий пункт UPDATE, я получаю сообщение об ошибке:
UPDATE Table2
SET column1 = fakeTable.c1
FROM Table2 INNER JOIN
(
SELECT Table1.primaryKey
, (Table1.column3 + Table1.column4) AS c1
FROM Table1
) AS c1
ON Table2.foreignKey = fakeTable.primaryKey
Могу ли я не разрешается ссылаться на ключи, как будто они являются столбцами?
Какая Ваша ошибка? –
В инструкции есть только одна ссылка на 'fakeTable', так что это один из источников ошибки. Вы хотели написать 'AS fakeTable' или' SET column1 = c1.c1'? –
SQL Server 2008. Хорошая уловка по отсутствующей ссылке на fakeTable в инструкции ON. К сожалению, это не исправить. Я думаю, мне нужно на самом деле ссылаться на столбцы, составляющие ключи. Я думал, что все дело в ключах, чтобы избежать необходимости конкатенации столбцов! – eek142