我正在编写一个处理一些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隔离。
有没有人知道这个错误,和/或它的解决方案?