【问题标题】:"Transport-level Error" using SQL Server Stored Procedure and Cursor使用 SQL Server 存储过程和游标的“传输级错误”
【发布时间】:2017-07-28 06:54:33
【问题描述】:

我为auto follow 用户创建了一个存储过程,该过程已经在服务器上。在我的数据库中,有 20,000 多个用户。此存储过程使用光标

我收到此错误从服务器接收结果时发生传输级错误。 (提供者:TCP Provider,错误:0 - 现有连接被远程主机强行关闭。)

这是我的存储过程。

                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

请让我知道这是否也可以改进。

【问题讨论】:

    标签: sql-server stored-procedures cursor


    【解决方案1】:

    “传输级别错误”表示调用存储过程的计算机已失去与存储过程所在的数据库服务器的网络连接。它与程序的代码无关。

    您需要让您的网络管理员调查问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-03
      • 2018-12-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多