SQL Server 2000不支持数组,可以将多个数据拼成以固定字符分隔的字符串传入,也可以传入一个游标变量。
分拆的处理参考:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[f_splitSTR]') and xtype in (N'FN', N'IF', N'TF')) drop function [dbo].[f_splitSTR] GO/*--字符串分函数 分拆指定分隔符的的字符串,返回结果表--邹建 2004.04(引用请保留此信息)--*//*--调用示例 SELECT * FROM f_splitSTR('aa ba b','a ') --*/ CREATE FUNCTION f_splitSTR( @s varchar(8000), --要分拆的字符串 @split varchar(10) --数据分隔符 )RETURNS @re TABLE(col varchar(100)) AS BEGIN DECLARE @splitlen int SET @splitlen=LEN(@split+'a')-2 WHILE CHARINDEX(@split,@s)>0 BEGIN INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1)) SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'') END INSERT @re VALUES(@s) RETURN END GO
drop function [dbo].[f_splitSTR]
GO/*--字符串分函数 分拆指定分隔符的的字符串,返回结果表--邹建 2004.04(引用请保留此信息)--*//*--调用示例 SELECT * FROM f_splitSTR('aa ba b','a ')
--*/
CREATE FUNCTION f_splitSTR(
@s varchar(8000), --要分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END
GO
不过@re是表名吗,