begin process at 2012 05 25 13:10:42
  Trouver un code source :
 
dans
 

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

Déposé sur 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.
Posté le : 29/09/2006 15:56:47

Déposé sur [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.
Posté le : 10/06/2006 13:50:04

Déposé sur 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
Posté le : 10/06/2006 13:15:13

Déposé sur 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
Posté le : 09/06/2006 22:58:59

1


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), 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

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,187 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales