Я пишу функцию для обработки некоторых данных 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.
Кто-нибудь знает об этой ошибке и / или ее разрешении?