求一个多条信息插入的存储过程

gongjie416 2012-05-25 11:01:39
现在有老师表t,学生表s,排课信息表c,及考勤表k。
现在传入的参数有老师名:teachername,学生名stuname,学生名是一个字符串如:张三,李四,王五 还有个状态参数state,
思路也很清楚:
  根据老师名取得老师id,再根据老师id从排课表中取得班级id,然后分离学生字符串把学生一个个插入到考勤表,
考勤表只有三个字段学生名跟state,班级id.

SQL语句会写,但是存储过程不会写,哪位大侠能帮忙下
...全文
76 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
gongjie416 2012-05-25
  • 打赏
  • 举报
回复
没人回答吗
  • 打赏
  • 举报
回复
create proc test(你的参数)
as
insert tbl
select 你的查询语句
gongjie416 2012-05-25
  • 打赏
  • 举报
回复
因为他分2步,一个是查找出来,然后增加,我不知道怎么连起来,分开的SQL我会写
gongjie416 2012-05-25
  • 打赏
  • 举报
回复
我不会写存储过程呀,
  • 打赏
  • 举报
回复
[Quote=引用楼主 的回复:]
现在有老师表t,学生表s,排课信息表c,及考勤表k。
现在传入的参数有老师名:teachername,学生名stuname,学生名是一个字符串如:张三,李四,王五 还有个状态参数state,
思路也很清楚:
根据老师名取得老师id,再根据老师id从排课表中取得班级id,然后分离学生字符串把学生一个个插入到考勤表,
考勤表只有三个字段学生名跟state,班级id.

SQL语句会写,但……
[/Quote]

你直接把你的SQL语句放到存储过程不就好了吗??????

你不会写存储过程?

go
create proc test (你的参数)
as
你的语句
gongjie416 2012-05-25
  • 打赏
  • 举报
回复
自己先顶下
gongjie416 2012-05-25
  • 打赏
  • 举报
回复
刚主要是学生这个字符串不会分割插入
  • 打赏
  • 举报
回复

if OBJECT_ID('pro_test')is not null
drop proc pro_test
go
create proc pro_test
(
@teachername varchar(10),
@stuname varchar(50),
@state bit
)
as
begin
--创建临时表存储你传进来的数据
if OBJECT_ID('temp..#test')is not null
drop table #test
create table #test(
teachername varchar(10),
stuname varchar(50),
[state] bit
)
--插入数据
insert #test
select @teachername,@stuname,@state
--将你传来的数据进行以下查询处理后在插入考勤表
insert 考勤表
select A.teachername, B.stuname,A.[state]
from(
select teachername,stuname=convert(xml,' <root> <v>' +
replace(stuname, ',', ' </v> <v>') + ' </v> </root>'),[state]
from #test
)A
outer apply(
select stuname = N.v.value('.', 'varchar(100)')
from A.stuname.nodes('/root/v') N(v)
)B
end
  • 打赏
  • 举报
回复

if OBJECT_ID('pro_test')is not null
drop proc pro_test
go
create proc pro_test
(
@teachername varchar(10),
@stuname varchar(50),
@state bit
)
as
begin
if OBJECT_ID('temp..#test')is not null
drop table #test
create table #test(
teachername varchar(10),
stuname varchar(50),
[state] bit
)
insert #test
select @teachername,@stuname,@state
insert 你插入的表
select A.teachername, B.stuname,A.[state]
from(
select teachername,stuname=convert(xml,' <root> <v>' +
replace(stuname, ',', ' </v> <v>') + ' </v> </root>'),[state]
from #test
)A
outer apply(
select stuname = N.v.value('.', 'varchar(100)')
from A.stuname.nodes('/root/v') N(v)
)B
end


--都给你说那么明确了啊

27,580

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧