sql中如何更新符合条件的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中如何更新符合条件的值相关的知识,希望对你有一定的参考价值。

有表A 字段为CODE1,RATE1 和表B 字段为CODE2,RATE2
如何将表A中CODE1等于表B中CODE2 的RATE1的值更新为表B中RATE2的值
我试着用 UPDATE A SET A.RATE1=B.RATE2 WHERE A.CODE1=B.CODE2 不行呀,好像只能用UPDATE将字段更新为一个确定的值,该怎么办呢?

参考技术A 你需要创建一个触发器,下面是有关与触发器的例子,你可以参考:
Create Trigger truStudent
On Student
for Update --触发器类型--Update
-------------------------------------------------------
--Name:truStudent
--func:更新BorrowRecord 的StudentID,与Student同步。
--Use :None
--User:System
--Author: wp_love
--Date : 2003-4-16
--Memo : 临时写写的,给大家作个Sample。没有调试阿。
-------------------------------------------------------
As
if Update(StudentID)
begin

Update BorrowRecord
Set br.StudentID=i.StudentID
From BorrowRecord br , Deleted d ,Inserted i
Where br.StudentID=d.StudentID

end
参考技术B update 不支持JOIN的, 要这么写 呵呵。

update A
set A.code1 = (select B.code2 from B where B.code2 = A.code1)本回答被提问者采纳
参考技术C UPDATE a SET a.RATE1 = B.RATE2 FROM a, b WHERE A.CODE1=B.CODE2 参考技术D update A set RATE1=B.RATE2 from A,B where A.CODE1=B.CODE2

用ExecuteReader()读取SQL数据库中数据,符合条件的有多行,用Read()先读取一行后,如何读取一行?

谢谢各位,但我是用文本框等控件显示的,显示一行数据后,想点一下“下一步”按钮,更新显示下一行数据。最好用VB代码,我是用VB写的。万分感谢
用while(reader.Reader())之后直接显示的是最后一条,前边的数据就显示不了,引进全局变量控制也不行

SqlDataReader reader=xx.ExecuteReader();
while(reader.Reader())//判断是否还有下一条数据

//接受后的行内容可以在这里进行赋值,你会获取一行赋值,这里就是多行赋值,你可以先用实体类接收,然后放入list或者其他的集合当中,当需要的时候去遍历结合,或者datatable也可以,dateset也行。不知道你需要的什么方式赋值。
参考技术A DataReader.Read()读取当前下一行记录,如果有多条记录可以使用
List<string> list = new List<string>();
while(DataReader.Read())

list.Add(DataReader.GetString(你要获取的数据的列序号));

循环读取
参考技术B 假设读取数据表 b中的 字段a 数据内容存在一个List<string>中 a字段为 nvarchar型.
List<string> lst = new List<string>();
using(SqlConnection conn= new SqlConnection(ConnectionString))

string Sql="Select a From b";
SqlCommand cmd = new SqlCommand(Sql,conn);
try

conn.Open();
IDataReader dr= cmd.ExecuteReader();
while(dr.Read()) //不断的读数据

if(!Convert.IsNull("a")) lst.add( dr["a"].toString()); //读取数据放置 List中


catch(Exception ex)
throw new Exception(ex.Message);

finish

if(conn.State==ConnectionState.Open)
conn.Close();

参考技术C 必须判断 Reader()
当SqlDataReader 的sdr 有内容时,才会读取,否则报错。
用if 或者 while 都可以
参考技术D where 语句

以上是关于sql中如何更新符合条件的值的主要内容,如果未能解决你的问题,请参考以下文章

sql数据库更新语句

在Mysql中如何插入一个有两个条件的值

如何有条件的更新sql 数据表中的列值?

用ExecuteReader()读取SQL数据库中数据,符合条件的有多行,用Read()先读取一行后,如何读取一行?

mysql如何根据一列值更新另一列的值?

mysql中如何查询同时符合两个条件的sql语句