2009-08-20 2 views
2

일부 CSV 데이터를 처리하는 함수를 작성 중입니다. 이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 

내 문제는 ... 내가 지금까지 쓴 것입니다 나는 다음과 같은 명령을 사용하여 기능을 실행할 때 ...

SELECT * FROM FGetCommaSeperatedValues('') 

표는 결과를 표시하지 않습니다 반환 나는 그것을 기대한다.

모든 행이 3624 정도가 될 때까지 (예상대로 id 열이 1 씩 증가합니다) 값이 잘못 증가합니다.

동료가 SQL Server 2008에서이 코드를 테스트했으며 모든 것이 잘 동작합니다. 이 SQL 서버 2000 격리 된 것으로 보입니다.

누구든지이 버그 및/또는 해결 알고 있습니까?

답변

4

수락 순서 SQL Server에서 정렬 순서가 이면은 ORDER BY 절을 사용해야합니다.

ORDER BY CLAUSE

+0

물론 물론 예! –

+0

당신은이 사람이 얼마나 많은 사람들을 잡았는지 놀라게 될 것입니다! –

관련 문제