T-SQL 每天根据日期备份数据
T-SQL daily backup of data based off a date
我有 2 个相同的 table,事件和 event_1。每天我都想将添加到事件 table 的新记录插入 event_1 table。
下面是 SQL 声明,说明我想做什么,但我不知道 SQL 的正确做法。感谢任何帮助,提前致谢。
select *
into event_1
from Event
where Event.EventDate > max(event_1.eventdate)
试试这个:
INSERT INTO event_1 --(column list)
SELECT * --(column list)
FROM Event
WHERE Event.EventDate > max(event_1.eventdate)
尽可能使用列列表而不是 *。如果您的表格完全相同,* 将起作用,但这是一种不好的做法。
如果它们在同一台服务器上的不同数据库中,您必须完全限定表,即 "DB_Name.schema.Event",如果在不同的服务器上,您需要具有权限的链接服务器并且必须使用 4 部分限定,即 [=18] =]
如果需要完全相同,可能只需截断并填充 table。
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)
我有 2 个相同的 table,事件和 event_1。每天我都想将添加到事件 table 的新记录插入 event_1 table。
下面是 SQL 声明,说明我想做什么,但我不知道 SQL 的正确做法。感谢任何帮助,提前致谢。
select *
into event_1
from Event
where Event.EventDate > max(event_1.eventdate)
试试这个:
INSERT INTO event_1 --(column list)
SELECT * --(column list)
FROM Event
WHERE Event.EventDate > max(event_1.eventdate)
尽可能使用列列表而不是 *。如果您的表格完全相同,* 将起作用,但这是一种不好的做法。
如果它们在同一台服务器上的不同数据库中,您必须完全限定表,即 "DB_Name.schema.Event",如果在不同的服务器上,您需要具有权限的链接服务器并且必须使用 4 部分限定,即 [=18] =]
如果需要完全相同,可能只需截断并填充 table。
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)