Bon, j'ai ce curseur et il doit mettre à jour le test de colonne avec le résultat de la requête @sql. mais il ne met pas à jour chaque colonne avec son propre résultat de la requête, comme s'il n'exécutait pas cette requête pour chaque colonne, si vous me le demandiez.Le curseur ne fonctionne pas à travers la table entière
declare @promenjiva nvarchar(max)
declare @docidgodina nvarchar(max)
declare @sql nvarchar(max)
declare @var int
declare @var1 int
declare c1 cursor for
select documentid,a4 from damdocumenttype1 order by documentid--a inner join dbo.Delovodnik b on a.documentid=b.idinstance
begin
open c1;
fetch next from c1 into @var,@promenjiva
while @@fetch_status = 0
begin
set @promenjiva=REPLACE(@promenjiva,'C','')
SET @SQL = 'select stuff((
SELECT '', '' + a1
FROM DamDocumentType1
where documentid in (' + @promenjiva + ')
FOR XML path('''')
), 1, 2, '''')'
exec @docidgodina=sp_executesql @sql
update dbo.Delovodnik set [email protected]
fetch next from c1 into @var,@promenjiva
end
end
close c1
deallocate c1
Je peux rejoindre someTable avec damdocumenttype1 sur DocumentID, si vous le savez
Pourquoi créez-vous intentionnellement une liste délimitée par des valeurs comme celle-ci? Vous devriez utiliser une structure normalisée au lieu de bachoter les valeurs dans un seul tuple. Cela rendra les choses plus difficiles pour vous à long terme. Tous les mouvements que vous devez effectuer pour créer les données que vous devrez annuler chaque fois que vous voulez l'interroger. –
Ceci est juste un curseur de temps et c'est mon premier curosor je ne sais pas beaucoup sur eux, donc j'ai besoin d'un code, je ne comprends pas beaucoup en lisant votre commentaire: D –
Ce que vous faites est de bourrer une liste délimitée par des virgules dans la colonne tester. Cela viole 1NF lorsque vous avez plusieurs valeurs dans une seule cellule (appelée un tuple dans le monde DB). –