Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как добавить условие для INSERT INTO / 8 сообщений из 8, страница 1 из 1
04.09.2020, 13:33
    #39995622
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
У меня каждый месяц запускается процедура, которая создает таблицу с данными за предыдущий месяц (#prev_month).
После этого я добавляю эти данные в таблицу где хранится история по всем месяцам.
Подскажите, как сделать чтобы, если вдруг процедура была запущена 2 раза в месяц, в таблицу с историей данные добавлялись только один раз.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
select month, count (UserID) as Number
into #prev_month
from Compliance
where StatusID=17
and LastRequestDate>dateadd(month,datediff(month,0,getdate()-1)-1,0)  
group by Month


insert into History_tbl
select * from #prev_month
...
Рейтинг: 0 / 0
04.09.2020, 14:10
    #39995654
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
Luna17,

0. where not exists
1. Логирование успешного результата и проверка по логу
2. Чекпойнт по последней дате
3. etc.
...
Рейтинг: 0 / 0
04.09.2020, 17:42
    #39995742
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
Luna17, попробуй так:
Код: sql
1.
2.
3.
4.
insert into History_tbl
select * from #prev_month
except
Select * from History_tbl
...
Рейтинг: 0 / 0
04.09.2020, 17:59
    #39995746
env
env
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
uaggster,

Серьёзно? Полный скан с потенциальной сортировкой ради записи одного месяца?
...
Рейтинг: 0 / 0
04.09.2020, 21:03
    #39995789
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
env
uaggster,

Серьёзно? Полный скан с потенциальной сортировкой ради записи одного месяца?

Полный скан чего?
Таблицы со вставляемыми записями? Она будет сканироваться при любом сценарии. Или той таблицы, куда будут вставляться записи?
Она будет сканироваться только если в ней нет кластерного индекса, или индекса по какому либо из полей

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Create table #t1 (a int, b varchar(255) primary key clustered (a))
Create table #t2 (a int, b varchar(255) primary key clustered (a))

Insert into #t1 Values (1, 'a'), (2, 'b')
Insert into #t2 Values (1, 'a'), (2, 'b'), (3, 'c')

insert into #t1
select * from #t2
except
select * from #t1
...
Рейтинг: 0 / 0
04.09.2020, 21:09
    #39995791
SIMPLicity_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
merge ?
...
Рейтинг: 0 / 0
05.09.2020, 13:13
    #39995887
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
Luna17,
добавьте проверочный триггер в таблицу истории.
...
Рейтинг: 0 / 0
07.09.2020, 13:31
    #39996166
Luna17
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как добавить условие для INSERT INTO
uaggster,
Спасибо!
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как добавить условие для INSERT INTO / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]