2017-07-30 44 views
-1

我无法创建一个简单的条件触发器来将数据插入到新表中。下面是触发器,其输出:表上的条件触发器

CREATE TRIGGER [dbo].[test_trigger] 
ON [dbo].[Export_Data] 
FOR INSERT 
AS 
BEGIN 
    INSERT INTO test (Terminal_ID, EmpIdentification, SwipeDateTime) 
     SELECT 
      DeviceId, UserId, LogDate 
     FROM 
      Inserted 
END 

输出如下:

enter image description here

我的要求是,我需要的仅TERMINAL_ID = 32 &只有33日志。

谢谢

+3

的StackOverflow是不是代码的工厂,我们是不是免费的服务。 –

+0

触发器是**高度特定于供应商的** - 所以请添加一个标签以指定您是使用mysql,postgresql,sql-server,oracle还是db2或其他东西。 –

+0

@ satish-g,如果它对你有帮助,请接受答案。谢谢。 –

回答

2

刚从Inserted表中添加where子句的select语句。如果要插入Export_Data.DeviceIdtest.Terminal_ID,那么你的过滤器应该是where Inserted.DeviceId in (32,33)

CREATE TRIGGER [dbo].[test_trigger] on [dbo].[Export_Data] 
for insert 
as 
begin 
    insert into test(Terminal_ID,EmpIdentification,SwipeDateTime) 
    select DeviceId,UserId,LogDate from Inserted 
    WHERE DeviceId in (32, 33) 
end 
+1

嗨,马克斯,谢谢你。您的评论对我有帮助。 –

+0

嗨,最大,我有一个更多的查询。我想使用Task Scheduler和sqlcmd将数据从一台服务器推送到另一台服务器。这里是我用于sqlcmd.exe的参数: - -S“服务器IP,端口号\ SQLSERVER”-U用户名-P密码-d数据库-Q“exec data_export”。我想要推送的服务器使用自定义端口。请指导我,因为我可以使用data_export过程手动导出。但我想使用任务计划程序自动执行此操作。 –

+0

请帮忙解决它。 –