日期:2014-05-17  浏览次数:20449 次

请教关于触发器的问题
我写了一个AFTER INSERT的触发器,加入之后就无法往表里插入数据了,不知道怎么回事,还请大侠指教一二
新手勿喷,不胜感激,大致是这样的

ALTER TRIGGER [dbo].[Update_Limit_Day] 
   ON  [dbo].[Data]
   AFTER INSERT
AS
   DECLARE @date char(8)
   DECLARE @stationid int
   DECLARE @temp float
   DECLARE @humi float
   DECLARE @carbon float
   DECLARE @alco float
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
    -- Insert statements for trigger here
    SELECT @date=CONVERT(char(8),SaveTime) FROM inserted
--SELECT @date=CONVERT(char(8),GETDATE(),102)
    SELECT @stationid=StationID FROM inserted
    SELECT @temp=Temperature FROM inserted
    SELECT @humi=Humidity FROM inserted
    SELECT @carbon=CarbonDioxide FROM inserted
    SELECT @alco=Alcohol FROM inserted 
END

------解决方案--------------------
引用:
Quote: 引用:

你貼的代碼完整嗎?
如果完整,跟這個trigger是沒有關係的.你這個trigger實際上沒什麽意義.
你可以刪了它試試能不能插數據.

感谢您的回答,我其实后面还有一句根据条件来往别的表插入数据,但是按理来说,这个已经是在插入当前表之后的触发,但是加入条件语句后,当前的表也不能插入了,不知为何,还请指教一二

那可能是你往别的表插入的数据没有成功,导致rollback tran.因为after insert时,只是insert,还没有commit.