日期:2014-05-17  浏览次数:20485 次

sql2008的函数导为sql2000的脚本出错
这个怎么改啊?????
create function [dbo].[func_splitid]
(@str ntest ,@split varchar(10))
RETURNS @t Table (c1 int)
AS
BEGIN
  DECLARE @x XML
  SET @x = CONVERT(XML,'<items><item id="' + REPLACE(@str, @split, '"/><item id="') + '"/></items>')
  INSERT INTO @t SELECT x.item.value('@id[1]', 'INT') FROM @x.nodes('//items/item') AS x(item)
  RETURN 
END



第 8 行: '.' 附近有语法错误。


------解决方案--------------------
CREATE function [dbo].[Split](@aString varchar(8000),@pattern varchar(10))
returns @temp table([Sid] [int] IDENTITY (1, 1) NOT NULL ,Myvalues varchar(100))
--实现split功能的函数
--说明:@aString,字符串,如“27,28,29”;@pattern,分隔标志,如“ ,”
--使用select Myvalues FROM Split(字符串, ',')
as 
begin
declare @i int
set @aString=rtrim(ltrim(@aString))
set @i=charindex(@pattern,@aString)
while @i>=1
begin
insert @temp values(left(@aString,@i-1))
set @aString=substring(@aString,@i+1,len(@aString)-@i)
set @i=charindex(@pattern,@aString)
end
if @aString<>'' 
insert @temp values(@aString)
return 
end

GO

------解决方案--------------------
sql server 2000不支持xml解析哦。

你需要编写一个自定义函数,模拟这部分的功能。