Bonjour,
je travaille sur la base BIJOU de Sage ligne 100, version SQL Server 2000 SP3.
J'ai crée un trigger sur la table F_DOCENTETE. Au moment de l'exécution du déclencheur, je recois le message d'erreur suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
update a échoué car les options SET suivantes comportent des paramètres incorrectes : 'QUOTED_IDENTIFIER'
.

Au niveau de l'analyseur des requêtes, j'ai exécuté le code suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
sp_dboption 'Nom_Base_de_données','arithabort','TRUE'
go
sp_dboption 'Nom_Base_de_données','concat null yields null','TRUE'
go
sp_dboption 'Nom_Base_de_données','quoted identifier','TRUE'
go
sp_dboption 'Nom_Base_de_données','ANSI nulls','TRUE'
go
sp_dboption 'Nom_Base_de_données','ANSI padding','TRUE'
go
sp_dboption 'Nom_Base_de_données','ANSI warnings','TRUE'
go
sp_dboption 'Nom_Base_de_données','numeric roundabort','FALSE'
go
Voici le code de mon trigger:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
[13:15:23] skon a dit : CREATE TRIGGER [CONTROL] ON [dbo].[F_DOCENTETE] 
FOR INSERT
 
 AS
SET ANSI_PADDING, ANSI_WARNINGS, CONCAT_NULL_YIELDS_NULL, ARITHABORT,
QUOTED_IDENTIFIER, ANSI_NULLS on
SET NUMERIC_ROUNDABORT off
 
 
DECLARE @UT as nvarchar (10)
DECLARE @NB as nvarchar (10)
DECLARE @PR as nvarchar (20)
DECLARE @piece as nvarchar (13)
 
--Sélectionner l'utilisateur connecté
SET @UT= (SELECT DO_Ref  FROM  INSERTED)
SET @piece= (SELECT DO_piece  FROM  INSERTED)
 
--Vérification de l'existance de dépot pour l'utilisateur connecté
SET @NB= (SELECT COUNT (*) FROM WS_USERDEPOT WHERE Utilisateur=@UT)
 
IF  @NB>0
 
BEGIN
--Selectionner le depot principale de l'utilisateur
SET @PR=(SELECT Depot FROM  WS_USERDEPOT WHERE Utilisateur=@UT and Principal=1)
--Renvoyer le code du depot principal
 
--Mettre a jour le depot
UPDATE   F_DOCENTETE
SET [DE_No] =  (SELECT DE_No FROM F_DEPOT WHERE DE_Intitule =@PR)
WHERE F_DOCENTETE.DO_Piece= @piece
 
END
 
 
 
--Rollback en cas d'erreur
IF @@Error <> 0
ROLLBACK TRANSACTION
Merci pour votre aide.