首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

存储过程,掏出一个表的数据。另外一个查询语句频繁去匹配前一个表的id找其他值

2013-11-20 
存储过程,取出一个表的数据。另外一个查询语句频繁去匹配前一个表的id找其他值比如 学生表Student(int id,v

存储过程,取出一个表的数据。另外一个查询语句频繁去匹配前一个表的id找其他值
比如 学生表
Student( 
   int id,
   varchar(20) name,
   int gradeId,
   varchar(20) gradeName
    )
班级表
Grade(
 int id,
 varchar(20) name

班级有十几20条数据。
现有几万条学生数据需要插入到学生表。
写一个存储过程
班级名字每次都去查那张表在写进去么。
有什么节省点的方法么。 T_Sql 存储过程 优化
[解决办法]
1.我觉得学生表里面可以不存gradeName(班级名称)
2.如果一定要存的话,可以用join的方式插入学生数据


insert into Student
select a.id,a.name,b.id as gradeId
,b.name as gradeName
from 来源表 a 
join 班级表 b
on a.gradeId=b.id

[解决办法]
1 不存gradename
2 幾萬個是怎麼一種格式呢?
[解决办法]
引用:
Quote: 引用:

1.我觉得学生表里面可以不存gradeName(班级名称)
2.如果一定要存的话,可以用join的方式插入学生数据


insert into Student
select a.id,a.name,b.id as gradeId
,b.name as gradeName
from 来源表 a 
join 班级表 b
on a.gradeId=b.id



好吧!!!我2了。这个都没想到。
然后
我的那个表其实有好多个这样的有id没name的字段。每个都用inner join 这种。
然后存储过程传参。怎么传那几万个学生进去啊。。。

你那几万个学生存在什么地方呢?
不用一个一个出来吧。
像我上面那个sql,批量出来所有的会快一点
[解决办法]
引用:
Quote: 引用:

插敘出來直接insert 不就得了?

insert into student(a,b,c,d,e,f) values(select * from b)
这样?


看你一次查詢出來多少了,批量一般1000提交一次比較快

热点排行