Håller på att konvertera ett projekt från SQL-server 6.5 till 7:an och har Den andra cursorn (cur_Territory) kompileras vid declare-satsen med det @employeeid som gäller just då, dvs ingenting alls eftersom den inte är satt ännu. Ok...Nested cursors i SQL-Server 7
    
    
stött på rejäla problem när det gäller nested cursors.
Bifogar ett litet exempel nedan (Northwind).
Här vill jag då plocka ut anställda och sedan visa vilka regioner de har.
Detta fungerar utmärkt i SQL 6.5 och jag får ett resultat som ser ut så här:
Anställd1
 Region1
 Region2
Anställd2
 Region1
osv...
I SQL 7 får jag endast ut de anställda.
Någon som har stött på samma problem? Tacksam för svar.
CREATE PROCEDURE SP_NestedCursorsTest AS 
declare @EmployeeID  int
declare @LastName    nvarchar (20)
declare @FirstName   nvarchar (10)
declare @TerritoryID nvarchar (20)
declare @Temp        nvarchar (200)
declare cur_Employee cursor for
  select  EmployeeID,
          LastName,
          FirstName
  from    Employees
for READ ONLY
declare cur_Territory cursor for
  select  TerritoryID
  from    EmployeeTerritories
  where   EmployeeID = @EmployeeID
for READ ONLY
open cur_Employee
fetch next
from  cur_Employee
into  @EmployeeID,
      @LastName,
      @FirstName
while (@@Fetch_Status = 0)
begin
  select  @Temp = @FirstName + ' ' + @LastName
  print   @Temp
  open  cur_Territory
  fetch next
  from  cur_Territory
  into  @TerritoryID
  while (@@Fetch_Status = 0)
  begin
    print @TerritoryID
    fetch next
    from  cur_Territory
    into  @TerritoryID
  end
  close cur_Territory
  fetch next
  from  cur_Employee
  into  @EmployeeID,
        @LastName,
        @FirstName
end
deallocate cur_Territory
close      cur_Employee
deallocate cur_Employee
GOSv: Nested cursors i SQL-Server 7
    
    
Denna proceduren fungerar (om den är så smart vet jag inte riktigt dock, jag hade försökt hitta nåt annat sätt att lösa det):
CREATE PROCEDURE SP_NestedCursorsTest AS 
declare @EmployeeID  int
declare @LastName    nvarchar (20)
declare @FirstName   nvarchar (10)
declare @TerritoryID nvarchar (20)
declare @Temp        nvarchar (200)
declare cur_Employee cursor for
  select  EmployeeID,
          LastName,
          FirstName
  from    Employees
for READ ONLY
open cur_Employee
fetch next
from  cur_Employee
into  @EmployeeID,
      @LastName,
      @FirstName
while (@@Fetch_Status = 0)
begin
  select  @Temp = @FirstName + ' ' + @LastName
  print   @Temp
  declare cur_Territory cursor for
  select  TerritoryID
  from    EmployeeTerritories
  where   EmployeeID = @EmployeeID
  for READ ONLY
  open  cur_Territory
  fetch next
  from  cur_Territory
  into  @TerritoryID
  while (@@Fetch_Status = 0)
  begin
    print @TerritoryID
    fetch next
    from  cur_Territory
    into  @TerritoryID
  end
  close cur_Territory
  deallocate cur_Territory
  fetch next
  from  cur_Employee
  into  @EmployeeID,
        @LastName,
        @FirstName
end
close      cur_Employee
deallocate cur_Employee
GOSv: Nested cursors i SQL-Server 7
    
    
Det känns ju dock lite tungt att behöva deklarera och deallokera cursorn i ett. 
Borde väl inte direkt förbättra prestandan (!?).
Men är det så det skall göras får jag väl acceptera detta.
Tack för svaret hur som helst!