2017-07-28 1 views
0

Ich habe eine gespeicherte Prozedur für auto follow Benutzer erstellt und diese Prozedur ist bereits auf dem Server. In meiner Datenbank gibt es mehr als 20.000 Benutzer. Diese Speicherprozedur verwendet Cursor."Transport-Ebene Fehler" mit SQL Server gespeicherte Prozedur und Cursor

Ich erhalte diesen Fehler Beim Empfang der Ergebnisse vom Server ist ein Transport-Level-Fehler aufgetreten. . (Anbieter: TCP-Anbieter, Fehler:. 0 - eine vorhandene Verbindung wurde von dem Remotehost geschlossen wurde) "

Dieses Verfahren meine gespeichert ist

   DECLARE @UserIdF Int 
      DECLARE @UserId Int 

     DECLARE csrAutoFollow CURSOR FOR 
     SELECT TOP (1) userid FROM dbo.users where IsFUser = 1 ORDER BY NEWID() 

     OPEN csrAutoFollow 
      FETCH NEXT FROM csrAutoFollow INTO @UserIdF 

      WHILE @@FETCH_STATUS = 0 
      BEGIN 
          DECLARE csrauto CURSOR FOR 
          SELECT userid FROM dbo.Users WHERE IsFUser IS NULL 

          OPEN csrauto 
           FETCH NEXT FROM csrauto INTO @UserId 

          WHILE @@FETCH_STATUS = 0 
          BEGIN  

           EXEC dbo.FollowUnfollowUser @UserIdF,@UserId,1 

          FETCH NEXT FROM csrauto INTO @UserId 
          END 

          CLOSE csrauto 
          DEALLOCATE csrauto 

       FETCH NEXT FROM csrAutoFollow INTO @UserIdF 
      END   
     CLOSE csrAutoFollow 
    DEALLOCATE csrAutoFollow 

Bitte lassen Sie mich wissen, ob dies auch sein kann

Antwort

0

"Transport Level Error" bedeutet, dass der Computer, von dem die gespeicherte Prozedur aufgerufen wurde, die Netzwerkverbindung mit dem Datenbankserver, auf dem die gespeicherte Prozedur ausgeführt wird, verloren hat.Es hat nichts mit dem Code der Prozedur zu tun.

Sie müssen Ihren Netzwerkadministrator das Problem untersuchen lassen.

Verwandte Themen