帮忙优化一下存储过程! 谢谢!
由于数据量太大 这个存储过程 执行起来 太慢了 谁能帮忙优化一下 实现同样的功能 谢谢!
CREATE PROCEDURE peoplechange
AS
begin
declare @sqlStr varchar(5000)
declare @oldBaseName varchar(50)
declare @newBaseName varchar(50)
set @oldBaseName='icme'
set @newBaseName='icme2'
while @@fetch_status = 0
begin
----上课表
select @sqlStr='insert into '+@newBaseName+'..上课表'
select @sqlStr=@sqlStr+'(id,课题编号,人员编号,日期,状态) '
select @sqlStr=@sqlStr+'select left(newid(),35),isnull('+@oldBaseName+'..上课表.课题编号,'' ''),isnull('+@oldBaseName+'..上课表.人员编号,'' ''),isnull('+@oldBaseName+'..上课表.日期,'' ''),0 '
select @sqlStr=@sqlStr+'from '+@oldBaseName+'..上课表 where 课题编号 not in(select 课题编号 from '+@newBaseName+'..上课表) or 人员编号 not in (select 人员编号
from '+@newBaseName+'..上课表) or 日期 not in (select 日期 from '+@newBaseName+'..上课表)'
exec(@sqlStr)
end
end
CREATE PROCEDURE peoplechange
AS
begin
declare @sqlStr varchar(5000)
declare @oldBaseName varchar(50)
declare @newBaseName varchar(50)
set @oldBaseName='icme'
set @newBaseName='icme2'
while @@fetch_status = 0
begin
----上课表
select @sqlStr='insert into '+@newBaseName+'..上课表'
select @sqlStr=@sqlStr+'(id,课题编号,人员编号,日期,状态) '
select @sqlStr=@sqlStr+'select left(newid(),35),isnull('+@oldBaseName+'..上课表.课题编号,'' ''),isnull('+@oldBaseName+'..上课表.人员编号,'' ''),isnull('+@oldBaseName+'..上课表.日期,'' ''),0 '
select @sqlStr=@sqlStr+'from '+@oldBaseName+'..上课表 where 课题编号 not in(select 课题编号 from '+@newBaseName+'..上课表) or 人员编号 not in (select 人员编号
from '+@newBaseName+'..上课表) or 日期 not in (select 日期 from '+@newBaseName+'..上课表)'
exec(@sqlStr)
end
end
...全文
相关推荐
SQL存储过程
在查询分析器中 SQL 2000执行存储过程的过程截图,详细
NHibernate调用存储过程
NHibernate调用存储过程 (增删改查实例)
sql server 存储过程100例
sql server 存储过程100例,说是100例,其实是超过了100例,如果看完了这些存储过程,你会发现原来存储过程如此简单.
sql 实验五 存储过程(2012).doc
PAGEPAGE13实验五存储过程学号:20092426姓名:xx远专业:信息与计算科学班级:2009121一、实验目的(1)掌握T-SQL流控制语句。(2)掌握创建存储过程的方法。(3)掌握存储过程的执行方法。(4)掌握存储过程的管理和维护。二、实验内容1、创建简单存储过程(1)创建一个名为stu_pr的存储过程:该存储过程能查询出051班学生的所有资料,包括学生的基本信息、学生的选课信息(含未选课同学的信息)。要求在创建存储过程前请判断该存储过程是否已创建,若已创建则先删除,并给出“已
NHibernate调用存储过程全集,值.
NHibernate调用存储过程的配置和例子.让你省去自己手动添写的麻烦.


