向中间表中添加数据
来源:互联网 发布:vocaloid后期软件 编辑:程序博客网 时间:2024/04/29 14:02
--向员工表实体表和关系表中插数据的过程
Create proc [dbo].[AddEmployeeData]
(
@DepID varchar(5000), --部门ID号 (提供给插入关系表中的参数,这里的部门ID在前台传过来分割符组成的字符串)
@EmployeeID int, --员工ID号 (提供给插入关系表中的参数)
@FName varchar(50), --员工姓名 (提供给插入员工实体表中的参数)
@FAge int, --员工年龄 (提供给插入员工实体表中的参数)
@FBirthday datetime, --员工生日 (提供给插入员工实体表中的参数)
@FJiGuan varchar(50), --籍贯 (提供给插入员工实体表中的参数)
@FSexID int, --性别ID (提供给插入员工实体表中的参数)(性别下拉选中的下标+1即可)
@FNumber varchar(50) --员工编号 (提供给插入员工实体表中的参数)
)
as
begin
begin tran myTran--声明一个事务
--第一步:向员工实体表中插入数据
insert into TEmployee(FName,FAge,FBirthday,FJiGuan,FSexID,IsAbled,FNumber,IsConfirmed)
values(@FName,@FAge,@FBirthday,@FJiGuan,@FSexID,1,@FNumber,1)--插入的数据默认为可用的,未审核的
--第二步:向员工和部门关系表中插入数据
--准备数据
declare myCursor cursor for --定义游标
--备注:Sql技巧
--使用select value from SplitToTable('1,3,4,5,7',',')再结合游标的方式不如直接使用
--insert into Mapping_Employee_Department select value from SplitToTable('1,3,4,5,7',',')
--这样可以更简洁一些
select value from SplitToTable('1,3,4,5,7',',')
--select value from SplitToTable('1,3,4,5,7',',') --使用游标的对象(跟据需要填入select文)
select value from SplitToTable(@DepID,'$') --使用游标的对象(跟据需要填入select文)
open myCursor --打开游标
fetch next from myCursor into @DepID --将游标向下移行,获取的数据放入之前定义的变量@id,@name中
while @@fetch_status=0 --判断是否成功获取数据
begin
--操作数据
declare @num int--设定一个计数变量,用于计算关系表中一共有几个ID为传过来的数据
set @num=0
set @num= (select count(1) from Mapping_Employee_Department where employeeID=@EmployeeID )
if(@num>=1)
begin
delete from Mapping_Employee_Department where employeeID=@EmployeeID--把关系表中员工号为传送过来的员工ID数据全都删除掉
end
if(@num=0)
begin
insert into Mapping_Employee_Department(employeeID,departmentID)
values(@EmployeeID,@DepID) --进行相应处理(跟据需要填入SQL文)
end
fetch next from myCursor into @DepID --将游标向下移行
end
close myCursor --关闭游标
deallocate myCursor --撤销游标
if @@error<>0 --捕获错误
Rollback Tran myTran--事务的回滚
else
COMMIT TRAN myTran --提交事务
end
- 向中间表中添加数据
- 添加数据向表中添加默认值
- SQL基础:向表中添加数据
- 向数据库中添加数据
- SSH框架双向多对多关系中如何向中间表插入数据
- C#中向dataTable中添加数据
- C#中向Chart中添加数据
- mysql操作(创建表,向表中添加数据)
- 利用ADODC向SQL表中添加数据
- SQL向已创建的表中添加数据
- 创建存储过程向表中循环添加数据
- 如何向SQL中添加数据
- javascript向excel中添加数据
- VC 向SQL中添加数据
- Winform中向DataGridView控件添加数据
- 动态的向ListView中添加数据
- 使用Hibernate向数据库中添加数据
- 利用JS向页面中添加数据
- 二分图一些性质
- IHE-C(2013.9)
- ECLIPSE - 新建jsp页面默认模板设置
- ANSI与UniCode的区别
- 可行性研究报告 之机房收费系统的可行性研究报告
- 向中间表中添加数据
- Naive Bayes 朴素贝叶斯的JAVA代码实现
- 【Cocos2d-x】Cocos2d-x参考案例源码解析之二:TestCpp万变不离其宗Main入口点
- 心在哪里,时间就在哪里
- Android游戏快速入门(二):绘制动态文字和图片
- android 动画 Tweened Animation 之 TranslateAnimation
- JavaScript toLowerCase() 方法
- (C语言队列的顺序实现(数据结构十)
- mysql中key 、primary key 、unique key 与index区别