Bonjour,

je suis assez newbie sur le t-sql et les triggers et j'aurais besoin d'un coup de pouce.
voilà mon besoin :
est enregistré dans une table, deux valeurs (Arret - Direction)
je souhaite dès qu'un enregistrement est ajouté mettre à jour un 3ème champ (code) à partir d'une comparaison dans une autre table.

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
declare
	@in_DirSaisie nvarchar(400)
	

BEGIN
	-- Declare the return variable here <@ResultVar, sysname, @Result> <Function_Data_Type, ,int>
	DECLARE @ResultVar nvarchar(50)
	Declare @v_SensA nvarchar(225)
	Declare @v_SensB nvarchar(225)
	
	
	
	-- Add the T-SQL statements to compute the return value here SELECT <@ResultVar, sysname, @Result> = <@Param1, sysname, @p1>
Essai1	
	set @ResultVar = ( select distinct CodeMRN from Topo t where @in_DirSaisie in (SELECT distinct rtrim(ltrim(t.lg_Arr))+rtrim(ltrim(t.SensB)) FROM Topo t))
	
	--select distinct CodeMRN from Topo t where '90-14-JuilletGeorges Braque / Technopôle' in (SELECT distinct rtrim(ltrim(t.lg_Arr))+rtrim(ltrim(t.SensB)) FROM Topo t)
Essai2		
		IF @in_DirSaisie = @v_SensA set @ResultVar = (select codeMRN from Topo where @v_SensA = @in_DirSaisie)
		ELSE   
		   BEGIN  
			 IF @in_DirSaisie = @v_SensB set @ResultVar = (select codeMRN from Topo where @v_SensB = @in_DirSaisie);  
		   ELSE  
			  SET @in_DirSaisie = null;  
		   END ;	
	
	
	-- Return the result of the function <@ResultVar, sysname, @Result>
	RETURN @ResultVar

END
le message de retour du débogueur est le suivant :

Msg*512, Niveau*16, État*1, Ligne*22
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
Merci votre aide