求一批量更新SQL
表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
.....
--------------------编程问答-------------------- 没看懂 --------------------编程问答-------------------- update table set name=参数, order=参数 where id in(1,2,3,4,5...)
不知道是不是这样的需求 --------------------编程问答-------------------- 相当于
只是不用选中,排序和名称以及URL的内容更新掉 --------------------编程问答-------------------- http://blog.163.com/fengchen618@126/blog/static/140014879201110220119564/ --------------------编程问答-------------------- http://blog.163.com/fengchen618@126/blog/static/140014879201110220119564/ --------------------编程问答-------------------- 写一个更新数据库的函数
循环ID调用函数
然后用数据库事物一起提交
失败的话就事物回滚 --------------------编程问答-------------------- http://djy252.blog.163.com/blog/static/10342838320129302416799/ 刚看到帖子,于是写了篇帖子,看下。批量更新,存储过程就1字符串参数(sqlserver) --------------------编程问答-------------------- http://topic.csdn.net/u/20120627/18/b6d16793-ae0b-4a11-bf85-9e647b2452fb.html
其实我想要这样的效果
--------------------编程问答-------------------- 用SQL语句如何实现?
或者使用存储过程也可以。
主要是因为传进来的也是同样的字符串,
如
id=1,2,3,4,5...
xx=asdf,sadf,as,se,fe... --------------------编程问答--------------------
要灵活运用啊。如果你想把id和xx作为参数传入的话,
还需要一个函数或者一个方法,就是讲字符串分割。函数我有
[code]
ALTER FUNCTION [ufn_ParseString](
@Str nvarchar(max), --含字符串的字符串
@Col nvarchar(5) -- 分隔符 如 |
)
RETURNS @Result TABLE (Row nvarchar(MAX))
AS
BEGIN
DECLARE @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批量更新 --------------------编程问答--------------------
要灵活运用啊。如果你想把id和xx作为参数传入的话,
还需要一个函数或者一个方法,就是讲字符串分割。函数我有
[code]
ALTER FUNCTION [ufn_ParseString](
@Str nvarchar(max), --含字符串的字符串
@Col nvarchar(5) -- 分隔符 如 |
)
RETURNS @Result TABLE (Row nvarchar(MAX))
AS
BEGIN
DECLARE @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
BEGIN
DECLARE @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
补充:.NET技术 , ASP.NET