Я хочу сделать что-то вроде этого.Обновление столбца на основе SELECT с параметром, поступающим с UPDATE
UPDATE tbl_states AS ts
SET tbl_states.country_id = (SELECT tbl_countries.country_id
FROM tbl_states ts1
JOIN tbl_countries
ON tbl_countries.country_id_id =
ts1.country_id
WHERE ts1.country_id_id = ts.country_id_id)
Я хочу обновить старыйcountry_id
который пришел из другой базы данных для новогоcountry_id
на основе новых первичных ключей, вставляемых в новой базе данных. Чтобы дать вам представление, вот схема.
CREATE TABLE [dbo].[tbl_countries](
[country_id] [int] IDENTITY(1,1) NOT NULL,
[country_id_id] [int] NULL,
[country_name] [varchar](50) NULL)
country_id_id
является старыйcountry_id
ссылается на следующей таблице я покажу вам tbl_states
CREATE TABLE [dbo].[tbl_states](
[state_id] [int] IDENTITY(1,1) NOT NULL,
[state_name] [varchar](50) NULL,
[country_id] [int] NULL,
[state_abbr] [char](3) NOT NULL)
Я хочу обновить country_id
столбец этой таблицы tbl_states
к первичной колонке приведенной выше таблицы, используя следующий оператор select, чтобы получить первичный ключ.
SELECT tbl_countries.country_id
FROM tbl_states_old
JOIN tbl_countries
ON tbl_countries.country_id_id = tbl_states_old.country_id
Извините за заголовок, я не знаю, как это называется. Не могли бы вы мне помочь?
+1 Я понятия не имел, как это назвать! К счастью (иногда) Google может читать мысли ... – WienerDog