Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Импорт из Excel, проверка на дубли перед вставкой  [new]
ильдар4
Member

Откуда:
Сообщений: 135
Добрый вечер!
Ребята, подскажите как сделать проверку на дубли, при импорте из excel
Необходимо вставить только новые значения Наименования

Импортирую, следующим образом:
insert into [YYYY_excel].dbo.[Типы задач]([Наименование])
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\yyyyyyyy.xlsx;HDR=YES;IMEX=1', 'SELECT * FROM [Типы задач$]')
20 янв 12, 18:37    [11942216]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
distinct + not exists
20 янв 12, 18:46    [11942273]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
ильдар4
Member

Откуда:
Сообщений: 135
Гавриленко Сергей Алексеевич,
У меня как раз не получается с not exsits. Получаю данные из экселя и как правильно сравнить с тем что уже есть в базе?
20 янв 12, 18:52    [11942317]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
insert into [YYYY_excel].dbo.[Типы задач]([Наименование])
select * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\yyyyyyyy.xlsx;HDR=YES;IMEX=1', 'SELECT * FROM [Типы задач$]') a
where not exists ( select * from [YYYY_excel].dbo.[Типы задач] x where a.<имя_поля> = x.[Наименование] )


Сообщение было отредактировано: 20 янв 12, 18:55
20 янв 12, 18:54    [11942326]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
ильдар4
Member

Откуда:
Сообщений: 135
Гавриленко Сергей Алексеевич,

... where a.<имя_поля> = x.[Наименование]

имя_поля - не видит
20 янв 12, 19:01    [11942385]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
ильдар4
Member

Откуда:
Сообщений: 135
Гавриленко Сергей Алексеевич,

Сергей, спасибо большое за помощь. Все получилось
20 янв 12, 19:04    [11942412]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
skorpk
Member

Откуда: Волгоград
Сообщений: 276
Можно сделать уникальный индекс с IGNORE_DUP_KEY. И если будут попадатсья записи которые есть в БД, то они не будут вставлятся.
21 янв 12, 15:22    [11944863]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
ильдар4
Member

Откуда:
Сообщений: 135
skorpk,

спасибо.
8 фев 12, 19:04    [12057303]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
ильдар4
Member

Откуда:
Сообщений: 135
Гавриленко Сергей Алексеевич,

Подскажите пожалуйста, как сделать, если мне нужно обновить найденные дубли, а если записей нет, то добавить?
8 фев 12, 19:07    [12057325]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
iljy
Member

Откуда:
Сообщений: 8711
ильдар4,

MERGE
8 фев 12, 19:30    [12057487]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
ильдар4
Member

Откуда:
Сообщений: 135
iljy,

А if exists?
8 фев 12, 19:31    [12057496]     Ответить | Цитировать Сообщить модератору
 Re: Импорт из Excel, проверка на дубли перед вставкой  [new]
iljy
Member

Откуда:
Сообщений: 8711
ильдар4,

что - if exists?
8 фев 12, 19:52    [12057636]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить