Ошибка SQL Server? - PullRequest
       10

Ошибка SQL Server?

2 голосов
/ 20 августа 2009

Я пишу функцию для обработки некоторых данных CSV. Это то, что я написал до сих пор ...

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 Server 2000.

Кто-нибудь знает об этой ошибке и / или ее разрешении?

1 Ответ

4 голосов
/ 20 августа 2009

Чтобы оценить порядок сортировки в SQL Server, вы должны использовать предложение ORDER BY.

ЗАКАЗАТЬ ПО СТАТЬЕ

...