J'écris une fonction pour traiter certaines données CSV. Voilà ce que je l'ai écrit à ce jour ...Bogue de SQL Server?
CREATE FUNCTION dbo.FGetCommaSeperatedValues(@csv as text)
RETURNS @tblIds TABLE(id int,csvlength int)
AS
BEGIN
DECLARE @csvlength AS int
--SET @csvlength = datalength(@csv);
SET @csvlength = 7685
DECLARE @currentIndex AS int
SET @currentIndex = 0
WHILE @currentIndex < @csvlength
BEGIN
--INSERT INTO @tblIds SELECT @currentIndex,@csvlength
INSERT INTO @tblIds (id,csvlength) values (@currentIndex,@csvlength)
SET @currentIndex = @currentIndex+1
END
RETURN
END
Mon problème est que quand j'exécute la fonction, en utilisant la commande suivante ...
SELECT * FROM FGetCommaSeperatedValues('')
Le tableau ne montre pas retourné les résultats que j'attends.
Tout va bien jusqu'à environ la ligne 3624 ou plus (comme prévu, la colonne d'identification incrémente de 1) Ensuite, les valeurs incrémentent de manière erratique.
Mon collègue a testé ce code dans SQL Server 2008 et tout fonctionne correctement. Cela semble être isolé au serveur SQL 2000.
Quelqu'un connaît-il ce bogue et/ou sa résolution?
Doh !, oui, bien sûr! –
Vous seriez surpris combien de personnes ont été prises par celui-ci! –