Подскажите ! Хочу вставть данные из одной таблицы в другую.

Hi-Fi
Дата: 09.10.2003 07:07:03
Хочу вставть данные из одной таблицы в другую. Но одна загвоздка.
Есть две таблицы "Справочник должностей". Одна старая, другая новая. Необходимо перекинуть инфу из старой в новую. Но в новой поле название должности стоит индексация без повторов и запрос не работает. структура у обоих таблиц совпадает 100% и по полям и по типам полей.

Таблица "Dol"
IdDol - int счетчик автозаполнение
NDol - varchar

Таблица "DolNew"
IdDol - int счетчик автозаполнение
NDol - varchar

ALTER PROCEDURE [add]
AS
INSERT into DolNew (NDol)
select NDol From Dol
RETURN

не работает, если данные в Dol уже есть. Подскажите, плиз !
tpg
Дата: 09.10.2003 07:10:08
INSERT into DolNew (NDol) 

select NDol From Dol d where not exists(select * from DolNew dn where d.NDol=dn.NDol)
tpg
Дата: 09.10.2003 07:11:13
Или даже так
INSERT into DolNew (NDol) 

select distinct NDol From Dol d
where not exists(select * from DolNew dn where d.NDol=dn.NDol)
Hi-Fi
Дата: 09.10.2003 07:13:29
А что такое d после NDol ? Это не опечатка ?
tpg
Дата: 09.10.2003 07:16:09
Это псевдоним, для упрощения понимания запроса, ничему не мешает, а позволяет только нагляднее читать запрос.
Hi-Fi
Дата: 09.10.2003 07:20:50
Объясни пожалуйста что ты мне написал. как это работает
tpg
Дата: 09.10.2003 07:25:09
А что тут непонятного? Запрос
select distinct NDol From Dol d

where not exists(select * from DolNew where NDol=d.NDol)
вернет набор уникальных записей из таблицы Dol по колонке NDol, которых нет в таблице DolNew
Hi-Fi
Дата: 09.10.2003 07:43:16
Спасибо, заработало. Скажи пожалуйста, а ты где про это читал, может дашь ссылочку на манул по mssql 2000 на русском ?
tpg
Дата: 09.10.2003 07:49:55