Hello All,
I'm trying to write a stored procedure which tracks the insert event
in a Table A. When we insert something in Table A in Database 'FMDB',
it inserts the same information in Table B in Database 'Wartung'.
When I insert something with insert query visa SQL Query analyzer, it
works fine.
If i insert records via my C++ programme, it gives error that
ROLLBACK_TRANSACTION has no BEGIN TRANSACTION.
Trigger code is as follow:
CREATE TRIGGER [TG_TASKCOPY] ON [FMDB].[METABO_TASK]
FOR INSERT
AS
BEGIN TRANSACTION
IF (SELECT COUNT(*) FROM inserted)=1
BEGIN
DECLARE @OBJEKT VARCHAR(32)
DECLARE @TASK VARCHAR(32)
DECLARE @PLANNER VARCHAR(32)
DECLARE @RESPONSIBLE VARCHAR(32)
DECLARE @STATUS VARCHAR(32)
DECLARE @PLANDATE DATETIME
DECLARE @ANLAGE_NUM int
SELECT @OBJEKT=OBJECT FROM inserted
SELECT @TASK=TASK FROM inserted
SELECT @PLANDATE=PLANDATE FROM inserted
IF (SELECT COUNT(*) FROM WARTUNG.WARTUNG.IPS_ASSETS WHERE
FM_NUM=@OBJEKT)=1
BEGIN
BEGIN TRANSACTION
SELECT @ANLAGE_NUM=ANLAGE_NUM FROM WARTUNG.WARTUNG.IPS_ASSETS
WHERE FM_NUM=@OBJEKT
INSERT INTO WARTUNG.WARTUNG.IPS_WARTUNG (ANLAGE,ANLAGE_NUM,
WAEHRUNG,NAECHSTEDATUM, STATUS,INTERVALTYPE,ART) VALUES(@OBJEKT,
@ANLAGE_NUM,'EUR', @PLANDATE,'geplant','D',@TASK)
COMMIT TRANSACTION
END
ELSE IF(@@error<>0)
BEGIN
ROLLBACK TRANSACTION
END
END
With Regards,
Attiq ur Rehman