bonjour a tous,
j'utilise un script qui est sencé me permettre de créer par la suite une hierarchie dans ma table hier_item
scripts:
declare @V_CHI_CODE as nvarchar(10)
declare @V_PAR_CODE as nvarchar(10)
declare @V_HIER_NAME as nvarchar(6)
declare @CHI_ID as int
declare @PAR_ID as smallint
DECLARE hier_cursor CURSOR FOR SELECT V_CHI_CODE, V_PAR_CODE, V_HIER_NAME, CHI_ID, PAR_ID FROM hier_item
OPEN hier_cursor
FETCH NEXT FROM hier_cursor into @V_CHI_CODE, @V_PAR_CODE, @V_HIER_NAME, @CHI_ID, @PAR_ID
WHILE @@FETCH_STATUS = 0
BEGIN
Update hier_item
set PAR_ID = (select CHI_ID from hier_item where V_CHI_CODE = @V_PAR_CODE and V_HIER_NAME=@V_HIER_NAME)
WHERE CURRENT OF hier_cursor
FETCH NEXT FROM hier_cursor into @V_CHI_CODE, @V_PAR_CODE, @V_HIER_NAME, @CHI_ID, @PAR_ID
END
CLOSE hier_cursor
DEALLOCATE hier_cursor
le script se suffit a lui meme, nan ??
seul le champ par_id est a null
la cle primaire est basée sur v_chi_code, v_hier_name et v_par_ code
et lorsque je l'utilise
, j'aiune erreure:
L'étape « MAJ SQL » a échouéSource de l'erreur de l'étape : Lot Microsoft Data Transformation Services (DTS)
Description de l'erreur de l'étape :La tâche a rapporté une erreur d'exécution.
(Microsoft OLE DB Provider for SQL Server (80004005): L'instruction a été arrêtée.)
(Microsoft OLE DB Provider for SQL Server (80004005): La sous-requête a retourné plusieurs valeurs.
Cela n'est pas autorisé quand la sous-requête suit =, !=, <, <= , >, >=
ou quand elle est utilisée en tant qu'expression.)
Code d'erreur de l'étape : 8004043B
Fichier d'aide de l'erreur de l'étape :sqldts80.hlp
ID du contexte de l'aide de l'erreur de l'étape :1100
et j evois pas en quoi le fait d'avoir un emlti reponse dans ma sousrequete pose probleme
peu etre du au Primary key ?
ou parce que un curseur ne peut pas gerer le smultireponse ??
Partager