J'ai une requête qui ressemble à ceci:Besoin d'aide sur la réécriture d'une requête qui utilise un curseur
DECLARE Match_Cursor CURSOR
FOR
SELECT ID,UserKey,TypeCode
FROM [DB1].Table1 as t1
OPEN Match_Cursor
FETCH NEXT FROM Match_cursor INTO @ID,@UserKey,@TypeCode;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
INSERT INTO #TempTable
SELECT t2.Name, t2.Address, t2.Country, @UserKey, @TypeCode
FROM [DB1].[DBO].udf_TableFunction(@ID) as t2
where @typeCode = 142 AND t2.Country = 'US'
FETCH NEXT FROM Match_cursor INTO @ID,@UserKey,@TypeCode;
END
SELECT * FROM #TempTable
Quelqu'un at-il des suggestions pour réécrire ce avec des jointures? Supposons qu'il existe une relation de clé étrangère entre t1.ID
et t2.ID
.
Qu'est-ce que udf_TableFunction retour? Le problème est qu'il renvoie une seule ligne. Pourrait-il être adapté pour renvoyer toutes les lignes (disons si l'ID est NULL), auquel cas vous pourriez vous joindre à cela ... – Sparky
Il retourne une collection de lignes. Il ne peut pas être changé pour retourner toutes les lignes si null est passé, mais null ne sera jamais passé. –
Besoin de voir le contenu de 'udf_TableFunction' –