Utilisation de SQL Server 2000Comment les déclencheurs fonctionneront?
Je fais un déclencheur dans la nouvelle base de données
CREATE TRIGGER [CARDEVENTSAVING] ON [dbo].[T_CARDEVENT]
AFTER INSERT
AS
DECLARE @EDATE VARCHAR(50)
DECLARE @ETIME VARCHAR(50)
DECLARE @EDOOR NVARCHAR(50)
DECLARE @EFLOOR NVARCHAR(50)
DECLARE @EMPID NVARCHAR(50)
DECLARE @TAG NVARCHAR(50)
DECLARE @ENAME NVARCHAR(50)
DECLARE @ELNAME NVARCHAR(50)
DECLARE @EPART NVARCHAR(50)
DECLARE @EDEP NVARCHAR(50)
DECLARE @EFUNCTION NVARCHAR(50)
DECLARE @STATUS NVARCHAR(50)
DECLARE @EDATE2 DATETIME
SELECT @EDATE =(SELECT CARDEVENTDATE FROM INSERTED)
SELECT @ETIME =(SELECT CARDEVENTTIME FROM INSERTED)
SELECT @TAG = (SELECT CARDNO FROM INSERTED)
IF LEN(@TAG) = 4
SELECT @TAG = '0000'[email protected]
ELSE IF LEN(@TAG) = 5
SELECT @TAG ='000'[email protected]
ELSE IF LEN(@TAG) = 6
SELECT @TAG = '00' + @TAG
ELSE IF LEN(@TAG) = 7
SELECT @TAG = '0' + @TAG
SELECT @EDOOR = (SELECT DOOR FROM T_PERSONALTRACKING WHERE CARDNO = @TAG)
SELECT @EFLOOR = (SELECT FLOOR FROM T_PERSONALTRACKING WHERE CARDNO = @TAG)
SELECT @EMPID = (SELECT SABUN FROM DATALINEDB.DBO.PERSON WHERE TAGNO = @TAG)
SELECT @ENAME = (SELECT NAME FROM DATALINEDB.DBO.PERSON WHERE TAGNO = @TAG)
SELECT @ELNAME = (SELECT LastName FROM DATALINEDB.DBO.PERSON WHERE TAGNO = @TAG)
SELECT @EPART = (SELECT PART FROM DATALINEDB.DBO.PERSON WHERE TAGNO = @TAG)
SELECT @EDEP = (SELECT MBUSO FROM DATALINEDB.DBO.PERSON WHERE TAGNO = @TAG)
SELECT @EFUNCTION = (SELECT FUNCTIONKEY FROM INSERTED)
SELECT @EDATE2 =(SELECT CARDEVENTDATE FROM INSERTED)
INSERT INTO
FINGERPRINTDB.DBO.HISTORY(EDATE, ETIME, EDOOR, EFLOOR, ESABUN, ETAG,
ENAME, ELNAME, EPART, EDEP, ESTATUS, EFUNCTION,
EINOUT, EDATE2)
VALUES
(@EDATE, @ETIME, @EDOOR, @EFLOOR, @EMPID, @TAG,
@ENAME, @ELNAME, @EPART, @EDEP, NULL, @EFUNCTION,
NULL, @EDATE2)
La requête ci-dessus est en cours d'exécution avec succès? Mais les lignes n'étaient pas affectées dans l'ancienne base de données.
J'ai inséré une nouvelle ligne dans la nouvelle base de données puis j'ai vérifié dans l'ancienne base de données, rien n'a été affecté?
Comment obtenir une donnée à partir d'une autre base de données?
Votre déclencheur est écrit en supposant qu'il n'y a qu'une seule ligne dans la table insérée. Si l'insertion qui a déclenché le déclencheur a affecté plus d'une ligne, il y aura plusieurs lignes dans la table insérée. – GilaMonster
Pas effacé de vos commentaires – Gopal