图片 7

SQLServer修改表数据,system和Scott用户下的数据库连接问题

使用SSMS数据库管理工具修改数据

以下内容出自《高性能MySQL》第三版,了解事务的ACID及四种隔离级有助于我们更好的理解事务运作。

system默认:manager

修改任意一条或者多条都可以

1:打开数据库,选择数据表,右键点击-》编辑所有行(如未配置,点击编辑前200行)。

图片 1

2、编辑需要修改的数据-》编辑完成后,右键点击空白处-》选择执行SQL即可编辑成功。

图片 2

下面举一个银行应用是解释事务必要性的一个经典例子。假如一个银行的数据库有两张表:支票表(checking)和储蓄表(savings)。现在要从用户Jane的支票账户转移200美元到她的储蓄账户,那么至少需要三个步骤:

 

使用T-SQL脚本修改数据

1、检查支票账户的余额高于或者等于200美元。

sys默认:change_on_install

修改单表中一行单列或者多列数据

语法:update 表名 set 列名1=值,列名2=值
where 条件;

示例一:update test1  set age=’21’ where
id=’1′;

示例结果:

图片 3

2、从支票账户余额中减去200美元。

 

修改单表中多行一列或多列数据

语法:update top(数量) 表名
set 列名1=值,列名2=值2 where 条件;

示例:

update test1 set age=’23’ where id in
(‘1′,’2’);

update test1 set age=’22’ where id between
‘3’ and ‘4’;

update test1 set age=’23’ where id>=’5′
and id <=’6′;

update top(2) test1 set age=’23’ where
id>=’5′;

update test1 set age=’23’ where test1.id
in (select top(2) id from test1 order by id desc);

示例结果:

图片 4

图片 5

3、在储蓄帐户余额中增加200美元。

使用SQL Plus登录数据库时,system使用密码manager可直接登录。

多表关联修改表中数据

语法:update 表1 set 表1.列1=值,表1.列2=值
from 表1 as a,表2 as b where a.列名=b.列名;

示例:update test1 set
test1.name=’李华’,test1.sex=’女’ from test1 as a,test2 as b where
a.classid=b.id;

示例结果:

 图片 6

图片 7

上述三个步骤的操作必须打包在一个事务中,任何一个步骤失败,则必须回滚所有的步骤。

由于为自己的密码时更改过的,所以我的密码不是使用manager登陆,但是代码格式依然是差不多的。

总结:修改数据表数据,灵活组合修改数据列,数据源,查询条件是关键。

 

 

代码示例:

可以用START
TRANSACTION语句开始一个事务,然后要么使用COMMIT提交将修改的数据持久保存,要么使用ROLLBACK撤销所有的修改。事务SQL的样本如下:

conn system
输入密码:1234
conn system/输入密码
  1. start transaction;

  2. select balance from checking where customer_id = 10233276;

  3. update checking set balance = balance – 200.00 where customer_id =
    10233276;

  4. update savings set balance = balance + 200.00 where customer_id =
    10233276;

  5. commit;

 

 

但如果是sys用户,密码必须加上as
sysdba,即完整密码为:change_on_install as sysdba 

ACID表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。一个很好的事务处理系统,必须具备这些标准特性:

代码示例:

 

1  conn sys/change_on_install as sysdba
conn 用户sys/密码

发表评论

电子邮件地址不会被公开。 必填项已用*标注

标签:
网站地图xml地图