T-SQL ежедневное резервное копирование данных на основе даты - PullRequest
0 голосов
/ 08 мая 2018

У меня есть 2 идентичные таблицы, event и event_1. Каждый день я хочу вставить новые записи, добавленные в таблицу событий, в таблицу event_1.

Ниже приведен SQL-оператор того, что я хочу сделать, но я не знаю подходящего SQL-кода для этого. Любая помощь приветствуется, спасибо заранее.

select * 
into event_1 
from Event 
where Event.EventDate > max(event_1.eventdate) 

Ответы [ 2 ]

0 голосов
/ 09 мая 2018

Если это должно быть точно так же, возможно, просто обрежьте и заполните таблицу.

TRUNCATE TABLE event_1

INSERT INTO event_1
SELECT *
FROM event

Или, может быть, что-то подобное, используя not exists.

INSERT INTO event_1 
SELECT *
FROM event e
WHERE NOT EXISTS (SELECT * FROM event_1 e1 WHERE e1.eventdate = e.eventdate)
0 голосов
/ 09 мая 2018

Попробуйте это:

INSERT INTO event_1 --(column list)
SELECT * --(column list)
FROM Event
WHERE Event.EventDate > max(event_1.eventdate)

Используйте списки столбцов вместо *, если это возможно. Если ваши таблицы точно такие же * будут работать, но это плохая практика.

Если они находятся в разных базах данных на одном и том же сервере, вы должны полностью квалифицировать таблицы, например, «DB_Name.schema.Event», если на разных серверах вам нужен связанный сервер с разрешениями и вам нужно использовать 4 части квалификации, то есть «Сервер». DB_Name.schema.Event "

...