数据库修改之更新员工表,根据ID删除Mapping表数据,再插入数据
2013-05-24 12:27
721 查看
改(根据ID更新员工主表,根据员工ID删除部门和员工表中的数据,再次插入新数据到部门和员工关系表中)
--根据员工ID更新员工表和关系表
create proc myUpdate
(
@EmployeeID int
,@DepartmentID varchar(200)
,@FName int
,@FAge varchar(50)
,@FBirthday datetime
,@FJiGuan varchar(50)
,@FSexID int
,@IsAbled int
,@FNumber varchar(50)
,@IsConfirmed int
)
as
begin
begin tran myTran--声明一个事务
update TEmployee set
FName=@FName
,FAge=@FAge
,FBirthday=@FBirthday
,FJiGuan=@FJiGuan
,FSexID=@FSexID
,IsAbled=@IsAbled
,FNumber=@FNumber
,IsConfirmed=@IsConfirmed
where ID=@EmployeeID--根据员工ID更新员工表数据
--根据员工ID删除部门关系表中的数据
delete from Mapping_Employee_Department where
employeeID=@EmployeeID
--从员工部门ID字符串拆分成的表中取到本部门ID字段,然后再加上员工ID一起放进员工部门关系表中
insert into Mapping_Employee_Department(employeeID,departmentID)
select @EmployeeID,value from SplitToTable(@DepartmentID,',')
if(@@ERROR<>0)
rollback tran myTran--回滚事务
else
commit tran myTran--提交事务
end
--根据员工ID更新员工表和关系表
create proc myUpdate
(
@EmployeeID int
,@DepartmentID varchar(200)
,@FName int
,@FAge varchar(50)
,@FBirthday datetime
,@FJiGuan varchar(50)
,@FSexID int
,@IsAbled int
,@FNumber varchar(50)
,@IsConfirmed int
)
as
begin
begin tran myTran--声明一个事务
update TEmployee set
FName=@FName
,FAge=@FAge
,FBirthday=@FBirthday
,FJiGuan=@FJiGuan
,FSexID=@FSexID
,IsAbled=@IsAbled
,FNumber=@FNumber
,IsConfirmed=@IsConfirmed
where ID=@EmployeeID--根据员工ID更新员工表数据
--根据员工ID删除部门关系表中的数据
delete from Mapping_Employee_Department where
employeeID=@EmployeeID
--从员工部门ID字符串拆分成的表中取到本部门ID字段,然后再加上员工ID一起放进员工部门关系表中
insert into Mapping_Employee_Department(employeeID,departmentID)
select @EmployeeID,value from SplitToTable(@DepartmentID,',')
if(@@ERROR<>0)
rollback tran myTran--回滚事务
else
commit tran myTran--提交事务
end
相关文章推荐
- 数据库 - 数据更新(插入、修改、删除)
- Java插入修改删除数据库数据的基本方法
- C# 向数据库批量更新数据(插入、更新、删除)
- 【T-MAC学习笔记10之--数据修改之插入数据,更新数据,删除数据】
- .net批量更新(插入、修改、删除)数据库
- SQL——数据库的修改(删除、插入与更新)
- 前台交互,根据id、关键字查询、插入新数据到数据库
- JDBC 数据库连接 创建表格、插入、查询、删除、修改数据 基本操作
- Sqlite 常用函数封装:修改密码,创建数据库、获取表段、字段,取值、插入、删除数据、执行Sqlite指令
- thinkphp 在数据库更新(save)的时候,如果字段没有被修改,会更新失败 和数据的自动验证,插入的时候可以自动验证,但更新的时候就不能验证了
- 集插入,删除,修改一体的操作数据库数据的方法
- 对于分页视图里面修改数据,在DAL层提示存储区更新、插入和删除语句影响到了意外的行数(0)的原因
- 【个人学习笔记10之--数据修改之插入数据,更新数据,删除数据.】
- 请问一下,我要向一个表插入数据,根据ID,重复的更新,没有的插入,不使用COUNT后判断,能做到吗?
- 《MySQL入门很简单》学习笔记(11)之第11章插入、更新与删除数据(关键词:数据库/MySQL/插入数据/更新数据/删除数据)
- SQL 数据更新(插入数据,修改数据,删除数据) 实例_(学生,课程表,选修表)
- Mysql EF 触发器生成主键id 存储区更新、插入或删除语句影响到了意外的行数(0)。实体在加载后可能被修改或删除。刷新 ObjectStateManager 项 ;System.Data.Entity.Infrastructure.DbUpdateConcurrencyException
- 数据库数据插入 更新 删除
- Java连接HBASE数据库,创建一个表,删除一张表,修改表,输出插入,修改,数据删除,数据获取,显示表信息,过滤查询,分页查询,地理hash
- 数据库删除之根据ID删除父表中的数据和根据ID删除子表数据