【发布时间】:2016-02-10 09:37:50
【问题描述】:
我在 Windows7 上使用 SQL Server 2012。我目前有 2 张桌子。
第一张桌子:
DeviceID DeviceSwVersion DeviceIPAddr
1 802 172.26.20.1
115 800 172.26.18.1
1234 264 172.26.18.3
4717 264 172.26.19.2 // <- new
14157 264 172.26.19.1 // <- new
第二张表:
DeviceIPAddr Status TimeStamp (default=getdate())
172.26.20.1 1 2016-02-09 10:25:01
172.26.18.1 1 2016-02-09 10:30:12
172.26.18.3 1 2016-02-09 10:33:08
我需要的是一个 SQL 查询,用于将新行插入到第二个表中,这些新行对应于第一个表中现在存在的新 DeviceIP。 只有新的DeviceIPs,还没有在第二个表中。
所以,最后第二张表应该是这样的:
DeviceIPAddr Status TimeStamp // default = getdate()
172.26.20.1 1 2016-02-09 10:25:01
172.26.18.1 1 2016-02-09 10:30:12
172.26.18.3 1 2016-02-09 10:33:08
172.26.19.2 0 2016-02-10 09:53:00
172.26.19.1 0 2016-02-10 09:53:01
备注:Status 新插入的行为 0,TimeStamp 为当前日期时间(默认值由 getdate() 函数自动填充)。
【问题讨论】:
-
尝试为此使用触发器
-
我会尝试,但我不知道如何。我是 SQL 的初学者。 :( ...请告知。
-
@groenhen ,正如 Paresh 已经告诉我的那样,我认为
AFTER INSERT触发器是更好的解决方案。由于您是初学者,我的回答让您了解所需的触发器。
标签: sql sql-server insert record