IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Pb set quoted identifier


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 150
    Points : 65
    Points
    65
    Par défaut Pb set quoted identifier
    Bonjour j'ai un problème de quoted identifier sur un trigger j'ai tous essayé mais je ne trouve pas la solution. Si dns le code suivant j'enlève mon insertion ca marche. Voila 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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
     
    CREATE TRIGGER PassageBF ON [dbo].[F_DOCLIGNE] 
    FOR  UPDATE
    AS
    DECLARE @PasseBF NUMERIC(13), @Qte NUMERIC(13),@Type SMALLINT,@Piece VARCHAR(9) ,@DL_No INTEGER,@QteAvant NUMERIC(13),@Test INTEGER,@sens SMALLINT,@DO_Piece VARCHAR(9),@NbLigne INTEGER,
    @CHAR_DO_Piece_bis	CHAR(1),
    @CHAR_DO_Piece CHAR(1),-- Caractère pour ajout au n° de pièce
    @CHAR_DO_Piece4 CHAR(1),
    @CHAR_DO_Piece3 CHAR(1),
    @CHAR_DO_Piece2 CHAR(1),
    @CHAR_DO_Piece1 CHAR(1),@cbMarq INTEGER
     
    SELECT @Type=DO_Type,@PasseBF=PassageBF,@Qte=DL_Qte,@Piece=DO_Piece,@DL_No=DL_No,@sens=DL_MvtStock FROM Inserted
    SELECT @QteAvant=DL_Qte FROM Deleted
     
    SET QUOTED_IDENTIFIER OFF
     
    Set @Test=0
    IF @Type=25
    BEGIN
    	IF @sens=0
    	BEGIN		
    		UPDATE F_DOCLIGNE SET DL_Qte=(DL_Qte*@Qte)/@QteAvant  FROM F_DOCLIGNE WHERE DO_Piece=@Piece AND 
    DL_MvtStock=3
    			Set @NbLigne=@@rowcount
     
    		--Calculer Nouveau DO_Piece
    		IF @Piece=NULL 
    		BEGIN
    			Raiserror('Le No_Pièce est NULL',16,1)
    		END
    		IF LEN(@Piece)>=10 
    		BEGIN
    			Raiserror('Le numéro de pièce ne peut être incrémenté',16,1)
    		END
     
     
    		SELECT @CHAR_DO_Piece_bis = RIGHT(LEFT(MAX(DO_Piece),8),1)--Récupere le chiffre qui va falloir incrementer
    		FROM F_DOCENTETE 
    		WHERE DO_Type=25
     
    		SELECT @CHAR_DO_Piece = LEFT(RIGHT(MAX(DO_Piece),2),1)--Récupere le chiffre qui va falloir incrementer
    		FROM F_DOCENTETE 
    		WHERE DO_Type=25
     
    		SELECT @CHAR_DO_Piece1 = LEFT(RIGHT(MAX(DO_Piece),3),1) --Récupere le nombre à rajouter en cas de test 1
    		FROM F_DOCENTETE 
    		WHERE DO_Type=25
     
    		SELECT @CHAR_DO_Piece2 = LEFT(RIGHT(MAX(DO_Piece),4),1) --Récupere le nombre à rajouter en cas de test 1
    		FROM F_DOCENTETE 
    		WHERE DO_Type=25
     
    		SELECT @CHAR_DO_Piece3 = LEFT(RIGHT(MAX(DO_Piece),5),1) --Récupere le nombre à rajouter en cas de test 1
    		FROM F_DOCENTETE 
    		WHERE DO_Type=25
     
    		SELECT @CHAR_DO_Piece4 =LEFT(RIGHT(MAX(DO_Piece),6),1) --Récupere le nombre à rajouter en cas de test 1
    		FROM F_DOCENTETE 
    		WHERE DO_Type=25 
     
    		-- Pour Info 'A' = 65 ; 'Z' = 90 ; 'a' = 97 ; 'z' = 122
    		-- Recherche de la lettre suivante
    		IF @CHAR_DO_Piece_bis IS NULL
    		BEGIN
    			SET @CHAR_DO_Piece_bis = '0' -- si pas de lettre initialise à 0
    		END
    		ELSE
    		BEGIN
    		-- incrémente la lettre
    			IF (ASCII(@CHAR_DO_Piece_bis) >= 47
    				AND ASCII(@CHAR_DO_Piece_bis) < 57) -- Verifie qu'une lettre existe*/
    			BEGIN
    				SET @CHAR_DO_Piece_bis = CHAR(ASCII(@CHAR_DO_Piece_bis) + 1)
    			END
    			ELSE		
    			BEGIN
    	 		-- incrémente la lettre
    				IF (ASCII(@CHAR_DO_Piece) >= 47 AND ASCII(@CHAR_DO_Piece) < 57) -- Verifie qu'une lettre existe*/
    				BEGIN
    					SET @CHAR_DO_Piece = CHAR(ASCII(@CHAR_DO_Piece) + 1)
    					SET @CHAR_DO_Piece_bis = '0'
    				END
    				ELSE
    				BEGIN
    				IF (ASCII(@CHAR_DO_Piece1) >= 47 AND ASCII(@CHAR_DO_Piece1) < 57) -- Verifie qu'une lettre existe*/
    				BEGIN
    					SET @CHAR_DO_Piece1 = CHAR(ASCII(@CHAR_DO_Piece1) + 1)
    					SET @CHAR_DO_Piece = '0'
    					SET @CHAR_DO_Piece_bis = '0'
    				END
    				ELSE 
    				BEGIN
    					IF (ASCII(@CHAR_DO_Piece2) >= 47 AND ASCII(@CHAR_DO_Piece2) < 57)
    					BEGIN
    						SET @CHAR_DO_Piece2 = CHAR(ASCII(@CHAR_DO_Piece2) + 1)
    						SET @CHAR_DO_Piece1 = '0'
    						SET @CHAR_DO_Piece = '0'
    						SET @CHAR_DO_Piece_bis = '0'
    					END
    					ELSE
    					BEGIN
    						IF (ASCII(@CHAR_DO_Piece3) >= 47 AND ASCII(@CHAR_DO_Piece3) < 57)
    						BEGIN
    							SET @CHAR_DO_Piece3 = CHAR(ASCII(@CHAR_DO_Piece3) + 1)
    							SET @CHAR_DO_Piece2 = '0'
    							SET @CHAR_DO_Piece1 = '0'
    							SET @CHAR_DO_Piece = '0'
    							SET @CHAR_DO_Piece_bis = '0'
    						END
    						ELSE
    						BEGIN
    							IF (ASCII(@CHAR_DO_Piece4) >= 47 AND ASCII(@CHAR_DO_Piece4) < 57)
    							BEGIN
    								SET @CHAR_DO_Piece4 = CHAR(ASCII(@CHAR_DO_Piece4) + 1)
    								SET @CHAR_DO_Piece3 = '0'
    								SET @CHAR_DO_Piece2 = '0'
    								SET @CHAR_DO_Piece1 = '0'
    								SET @CHAR_DO_Piece = '0'
    								SET @CHAR_DO_Piece_bis = '0'
    							END
    							ELSE
    							BEGIN -- toutes les lettres ont été utilisées
    								RAISERROR ('Impossible de Numéroter cette pièce1',16,1)
    							END
    						END
    					END
    				END
    			END
    			SET @DO_Piece ='OF'+ @CHAR_DO_Piece4 + @CHAR_DO_Piece3 + @CHAR_DO_Piece2+@CHAR_DO_Piece1 + @CHAR_DO_Piece +@CHAR_DO_Piece_bis	--@DO_PieceOrigine+@CHAR_DO_Piece 
     
    			IF @DO_Piece IS NULL
    			BEGIN
    				RAISERROR('Le do_Piece est null',16,1)
    			END 
    			-- Valeur de cbMarq
    			SELECT @cbMarq = MAX([cbMarq]+1)
    			FROM [F_DOCENTETE]
    --Insertion ENTETE
    			SET QUOTED_IDENTIFIER ON
     
     
    			[color=red]INSERT INTO [F_DOCENTETE] 
    			([DO_Domaine],[DO_Type],[DO_Piece],[DO_Date],[DO_Tiers])
    			SELECT 
    			[DO_Domaine],		[DO_Type],			@DO_Piece,
    			[DO_Date],						[DO_Tiers]
    			FROM [F_DOCENTETE]
    			WHERE [DO_Piece] = @Piece[/color]
     
     
    --Insertion Ligne avec boucle tant que
    			END
    		END 	
    	END
    END
    Merci

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    150
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 150
    Points : 65
    Points
    65
    Par défaut
    Le pb est résolu au lieu d'utiliser Entreprise manager j'utilise l'analyseur de requête et avec l'analyseur de requête je peux mettre l'option quoted identifier à on alors que dans untrigger ce n'est pas possible

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MySQL : quote identifiers
    Par Jasmine80 dans le forum Requêtes
    Réponses: 6
    Dernier message: 10/03/2008, 12h54
  2. Réponses: 16
    Dernier message: 28/06/2007, 17h10
  3. [SQL Serveur 2000] - Problème QUOTED-IDENTIFIER
    Par Silvia12 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/06/2007, 14h17
  4. Pb Set quoted Identifier
    Par Yanmeunier dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/12/2005, 10h49
  5. Manipulations binaires : savoir si un bit est "set"
    Par DiGiTAL_MiDWAY dans le forum Général Python
    Réponses: 2
    Dernier message: 18/09/2005, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo