Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

4 commentaire(s) de Malkuth sur des sources sur sqlfr

Le : 29/09/2006 15:56:47
Source : SQL SERVER – AGRÉGER DES CHAMPS VARCHAR
hello

J' ai essayer la méthode 1 sous 2005 :
SET @machaine = ''
SELECT @machaine = @machaine + Champ + ',' FROM MaTable
SELECT @machaine

Ca marche trés bien mais ...

Ben aprés N caractéres il n'écrit plus rien dans la chaine pourtant j'ai essayer de convertir tous en nvarchar(Max) mais pas moyen
(je voulais tester pour faire des CSV).

Je vais tenter la méthode avec XMLPath. mais je voudrais bien savoir d'ou viens le problème si tu en as une idée.


Le : 10/06/2006 13:50:04
Source : [MS SQL SERVEUR] ON DELETE CASCADE
Pour faire la même chose avec un trigger je pense que ce trigger devrais fonctionner (En supprimant la cascade bien sur):

--Remarquer l'utilisation de instead of a la place de for dans la définition du trigger

CREATE TRIGGER trigger_Tcivilites_Delete
ON Tcivilites INSTEAD OF DELETE
AS
BEGIN
--Supression dans la table Tpersonnes
DELETE Tpersonnes WHERE fkcivilite IN(SELECT ID FROM Deleted)
--Supression dans la table Tcivilites
DELETE Tcivilites WHERE ID IN(SELECT ID FROM Deleted)
END

Toutefois j'ai un doute quand a une possible récursivité du au second delete.

Mais je pense que l'utilisation de la cascade doit être plus rapide car implémenter dans le sgbdr a un plus bas niveau.


Le : 10/06/2006 13:15:13
Source : GESTION DE STOCK À L'AIDE D'UN TRIGGER [SQL SERVER 2000]
En fait lors d'une insertion de la forme :

INSERT INTO Tbl_1
(Chp_1, Chp_2, Chp_3)
SELECT
Chp_1, Chp_2, Chp_3
FROM
Tbl2
WHERE Tbl_2.Chp_4=@Condition

on voie que si la condition 'Tbl_2.Chp_4=@Condition'
Est satisfaite par plusieurs enregistrement de Tbl_2 alors
on inserrera toutes ces lignes en même temps

Daqns ce cas le trigger n'est lancer qu'une seule fois pour l'ensemble des lignes inserer (et c'est heureux car je t'explique pas le temps que ca metrait lors d'une insertion de 1000000 enregistrement).

dans ce cas la pseudo Table inserted ne contient pas 1 mais plusieurs enregistrement.

sinon pour le Art_suivi je suis aller un peu vite ,
il manque effectivement une Jointure :
voilà ma nouvelle proposition

create trigger Gestion_stock
on invent
FOR INSERT
AS
update S SET
  Stock_Art = (S.Stock_Art - I.Quantite)
FROM
  Stock as S
  INNER JOIN Inserted as I
   ON S.ART_Ref = I.ART_Ref
  INNER JOIN Articles As A
   ON A.ART_Ref = I.ART_Ref
WHERE
  A.ART_suivi = 1


Le : 09/06/2006 22:58:59
Source : GESTION DE STOCK À L'AIDE D'UN TRIGGER [SQL SERVER 2000]
ce n'est pas la peine d'utiliser un triger pour supprimer les enregistrement de table qui aurait en clef etrangere une reference à une ligne que l'on veut supprimer, les mise a jours et suppression en cascade sont la pour ça.


Ensuite je pense que le triger n'aura pas l'effet souhaiter dans le cas d'une insertion de plusieurs enregistrement en effet dans ce cas le triger n'est executer qu'une foie, et les tables automatique inserted et deleted contienne tous les enregistrement affecter.

Je propose donc :

create trigger Gestion_stock
on invent
FOR INSERT
AS
    update S SET
    S.Stock_Art = (S.Stock_Art - I.Quantite)
    FROM Stock as S INNER JOIN Inserted as I
    ON S.ART_Ref = I.ART_Ref
    WHERE ART_suivi = 1





Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Appels d'offres



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,109 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.