一个关于在SQL SERVER中用存储过程对表定位的问题(10分)

  • 主题发起人 主题发起人 gdwangyg1
  • 开始时间 开始时间
G

gdwangyg1

Unregistered / Unconfirmed
GUEST, unregistred user!
在使用sql server的存储过储中,对某表定位时没有象vfp那样方便不知可否实现?如下中能用
滤来实现,对速度----
declare @emp_name char(10)
select @emp_name=emp_name from person wher emp_id='01' --(01)
if @emp_name='AA'
begin
update person set salary=2500 where emp_id='01' ---(02)
end
从以上可以看出,在01,02处用了两次条件搜索,如果条件更复杂时搜索条件更多,
速度就慢了很多,如果可在01处定位后再在02处直接更新那多好啊!!
 
只差一点点你就会看到它的优处了
UPDATE PERSON SET DALARY=2500 WHERE EMP_ID='01' AND EMP_NAME='AA'
 
懒少:你可能理解错了,我是想知道有没有可以定位后再被下一条语句使用而不用再过滤一次的方法?
 
我认为在SQL里没有"定位"这种概念.
你要一条条纪录遍历下去可用游标
DECLARE CURSORNAME CURSOR FOR SELECT EMP_NAME FROM PERSON WHERE MEP_ID='01'
OPEN CURSORNAME
FATCH NEXT FROM CURSORNAME TO @EMP_NAME
WHILE (@@FATCH_STATUS=O)
BEGIN
..........
END
 
后退
顶部