1:应该会经常用到
2:因游标效率较低,能不用最好不要用,当然有时候不得不用。以下为SQL2000使用游标的模板。
-- =============================================
-- Declare and using a KEYSET cursor
-- =============================================
DECLARE <cursor_name, sysname, test_cursor> CURSOR
KEYSET
FOR <select_statement, , SELECT au_fname FROM pubs.dbo.authors>DECLARE @name varchar(40)OPEN <cursor_name, sysname, test_cursor>FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO @name
WHILE (@@fetch_status <> -1)
BEGIN
IF (@@fetch_status <> -2)
BEGIN
-- PRINT 'add user defined code here' 
-- eg.
PRINT 'updating record for ' + @name
UPDATE pubs.dbo.authors 
SET phone = replace(phone, ' ', '-')
WHERE CURRENT OF <cursor_name, sysname, test_cursor>
END
FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO @name
ENDCLOSE <cursor_name, sysname, test_cursor>
DEALLOCATE <cursor_name, sysname, test_cursor>
GO

解决方案 »

  1.   

    游标用的不太多,游标比较占用资源,能不用游标的时候最好不用
      

  2.   

    按需求來,我的公司的業務流程需用到遊標時,我都用循環代替,效率會有點提高。
      

  3.   

    “我的公司的業務流程需用到遊標時”这是理解(设计)力的问题。开发这如果没有分析设计力,结果风格就是五花八门很难统一了。
      

  4.   

    不需要改变“业务流程”,只需要改变开发者的理解力。