表table中有以下字段
id,name,order
1 A 0
2 B 0
3 C 0
4 D 0
5 E 0
6 F 1如果根据提交ID,更新name和order内容比如id,name,order
1 AA 3
2 BA 1
3 AC 6
4 SE 7
5 SEF 2
.....
id,name,order
1 A 0
2 B 0
3 C 0
4 D 0
5 E 0
6 F 1如果根据提交ID,更新name和order内容比如id,name,order
1 AA 3
2 BA 1
3 AC 6
4 SE 7
5 SEF 2
.....
不知道是不是这样的需求
或者使用存储过程也可以。主要是因为传进来的也是同样的字符串,
如
id=1,2,3,4,5...
xx=asdf,sadf,as,se,fe...
还需要一个函数或者一个方法,就是讲字符串分割。函数我有[code]ALTER FUNCTION [ufn_ParseString](
@Str nvarchar(max), --含字符串的字符串
@Col nvarchar(5) -- 分隔符 如 |
)
RETURNS @Result TABLE (Row nvarchar(MAX))
AS
BEGINDECLARE @Row nvarchar(max) --一行数据
,@Pos int
;
--开始提取
SELECT @Pos=CharIndex(@Col, @Str);
WHILE @Pos>0
BEGIN
--提取一行
SELECT @Row=SUBSTRING(@Str, 1, @Pos - 1); INSERT @Result
SELECT @Row; --去掉此行
SELECT @Str=STUFF(@Str, 1, LEN(@Row+@Col), '');
--继续处理
SELECT @Pos=CharIndex(@Col, @Str);
END
--插入最后一行
INSERT @Result
SELECT @Str;
RETURN END
[/code]SELECT ufn_ParseString('1,2,3,4,5,6',',')那样你需要调用多次,然后在合并。
还不如用我给你的地址。利用解析XML批量更新
还需要一个函数或者一个方法,就是讲字符串分割。函数我有[code]ALTER FUNCTION [ufn_ParseString](
@Str nvarchar(max), --含字符串的字符串
@Col nvarchar(5) -- 分隔符 如 |
)
RETURNS @Result TABLE (Row nvarchar(MAX))
AS
BEGINDECLARE @Row nvarchar(max) --一行数据
,@Pos int
;
--开始提取
SELECT @Pos=CharIndex(@Col, @Str);
WHILE @Pos>0
BEGIN
--提取一行
SELECT @Row=SUBSTRING(@Str, 1, @Pos - 1); INSERT @Result
SELECT @Row; --去掉此行
SELECT @Str=STUFF(@Str, 1, LEN(@Row+@Col), '');
--继续处理
SELECT @Pos=CharIndex(@Col, @Str);
END
--插入最后一行
INSERT @Result
SELECT @Str;
RETURN END
[/code]SELECT ufn_ParseString('1,2,3,4,5,6',',')那样你需要调用多次,然后在合并。
还不如用我给你的地址。利用解析XML批量更新
Create FUNCTION [ufn_ParseString](
@Str nvarchar(max), --含字符串的字符串
@Col nvarchar(5) -- 分隔符 如 |
)
RETURNS @Result TABLE (Row nvarchar(MAX))
AS
BEGINDECLARE @Row nvarchar(max) --一行数据
,@Pos int
;
--开始提取
SELECT @Pos=CharIndex(@Col, @Str);
WHILE @Pos>0
BEGIN
--提取一行
SELECT @Row=SUBSTRING(@Str, 1, @Pos - 1); INSERT @Result
SELECT @Row; --去掉此行
SELECT @Str=STUFF(@Str, 1, LEN(@Row+@Col), '');
--继续处理
SELECT @Pos=CharIndex(@Col, @Str);
END
--插入最后一行
INSERT @Result
SELECT @Str;
RETURN END