问答题

在SQLServer2000的某数据库中有如下两张关系表:   学生表(学号,姓名,性别,系号),学号为主码   系表(系号,系名,系简称),系号为主码

在数据库中执行如下T-SQL代码:  DECLARE @DePtID varchar(10)  DECLARE @cnt int  set @cnt=O  DECLARE cursor1 cursor FOR SELEET系号FROM系表  WHERE系名LIKE’%电%’  OPEN cursorl  FETCH NEXT FROM cursor1 INTO @DePtID  WHILE @@FETCH_STATUS=O  BEGIN  DECLARE @temp_cnt int  sELECT @temp_cnt=COUNT(*)FROM学生表WHERE系号=@DeptID  set @Cnt=@cnt+@temp_cnt  FETCH NEXT FROM cursor1 INTO ODePtID  END  CLOSE cursor1  DEALLOCATE cursor1  SELECT @cnt  执行过程中发现速度比较慢,为了解决性能问题,需在功能不变的情况下,将此T-SQL代码改为一条SQL语句,请写出此SQL语句(语句中不能含有子查询)并说明为什么此种修改可以提高性能。

【参考答案】

select count(*)from 学生表 where 系名 like ‘%电%’