¿Cómo Corregir El Error @@ De SQL Además De @@ Número De Filas?

Recientemente, un par de nuestros lectores encontraron un fantástico mensaje de error con sql @@ error más @@ rowcount. Este problema comienza por varias razones. Discutamos esto ahora.

Obtenga la mejor herramienta de reparación de Windows hoy. Satisfacción 100% garantizada o le devolvemos su dinero.

@@ Rowcount se usa para mostrarle el número de filas destruidas por: la última instrucción SQL.

@@ Error da el número de cada última instrucción SQL ejecutada. Si en ese punto no hay error, el valor normalmente es cero.

  PROCEDIMIENTO DE CREACIÓN [dbo]. [MySproc](   @ Param1 [número])¿COMO? 'O QUEINICIAR TRANSINSTALE NOSOCH;SELECCIONAR @ Param1ACTUALIZAR [dbo]. [Tabla 1]establecer Col2 = 'algo'O Col1 es increíblemente similar a @ Param1SI @@ ERROR <> 0EMPEZAR    TRANSPORTE DE REGRESO    VUELTA -12FIN... 

Pero en un caso en el que no hay registros mientras está en Table1 confirmado exitosamente con respecto a nuestra propia transacción Col1 = - Param1 , eso es malo para todos. Agregaría esto para asegurarme de que Col2 = Is 'something' esté realmente hecho. De lo contrario, pierda un código diferente con un sitio categórico.
Cuando trato de presionar @@ rowcount después de pasar por @@ error , intente esto a su vez PROCEDIMIENTO como este:

  CREAR [dbo]. [MySproc](   @ Param1 [número])¿COMO? 'O QUEINICIAR TRANSINSTALE NOSOCH;SELECCIONAR - Param1ACTUALIZAR [dbo]. [Tabla 1]establecer Col2 en positivamente 'algo'O Col1 = @ Param1SI @@ ERROR <> 0EMPEZAR    TRANSPORTE DE REGRESO       VUELTA -12FINSI @@ ROWCOUNT significa 0EMPEZAR    TRANSPORTE DE REGRESO    REGRESO -27FIN... 

Sin duda, este paso siempre se revierte porque @@ rowcount evalúa casi todos los comentarios recientes para mejorar siempre 0 .

Entonces, ¿cómo es posible verificar simplemente @@ error y el no. con las líneas correspondientes?

Se aplica a: SQL Server (todas las versiones) admite Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Sintaxis

  @@ ERROR 

Tipos de datos devueltos

Devuelve la mayor parte del porcentaje de fallas si la declaración de supervivencia tuvo una falla fantástica. Si el error fue definitivamente uno detrás de los errores en su salida actual del mensaje sys.Catalog, @@ ERROR normalmente incluye el valor de la columna sys.messages.message_id para generar este error. Muestra el texto asociado con el mismo Error @@ número de error usando sys.messages.

La solución integral para todos sus problemas relacionados con Windows

¿Tu computadora funciona lenta e inestable? ¿Está plagado de errores misteriosos y preocupado por la pérdida de datos o la falla del hardware? Entonces necesita Reimage, el software definitivo para reparar problemas de Windows. Con Reimage, puede solucionar una amplia gama de problemas con solo unos pocos clics, incluida la temida pantalla azul de la muerte. La aplicación también detecta aplicaciones y archivos que fallan, para que pueda resolver sus problemas rápidamente. Y lo mejor de todo, ¡es completamente gratis! Así que no espere, descargue Reimage ahora y disfrute de una experiencia de PC fluida, estable y sin errores.

  • Paso 1: Descargue e instale Reimage
  • Paso 2: Abra la aplicación y haga clic en el botón Escanear
  • Paso 3: Seleccione los archivos o carpetas que desea restaurar y haga clic en el botón Restaurar

  • Dado que @@ ERROR también se libera y se vacía en cada put, verifique la declaración inmediatamente y después. Verifique la aserción, o almacene el elemento como una ruta en una variable local que siempre puede estudiar más adelante. .

    Utilice TRY … CATCH para manejar errores. La construcción TRY … CATCH también admite funciones de unidad adicionales (ERROR_LINE, ERROR_MESSAGE, ERROR_PROCEDURE, ERROR_SEVERITY, pero ERROR_STATE) que devuelven más material @@ ERROR que. TRY … CATCH posiblemente admita la función ERROR_NUMBER, que según los expertos en salud va más allá de simplemente devolver el número de error en una declaración adecuada después de la declaración que generó cada error. Para obtener más información, consulte TRY … CATCH (Transact-SQL) .

    Ejemplos

    A. Uso de @@ ERROR para identificar un error de confianza específico

    En el siguiente caso en cuestión, @@ ERROR fuerza una única comprobación en una instrucción UPDATE específica para ver si se ha producido cada infracción de restricción (número de error 547).

      USE AdventureWorks2012;CAMINARACTUALIZAR HumanResources.EmployeePayHistory    SET ocurrencia de pago = 4    O BusinessEntityID implica 1;SI @@ ERROR da como resultado 547. es igual a    EMPEZAR    PRINT N 'Es probable que se haya producido una infracción de la restricción de control.';    FINCAMINAR 

    B. Ejecución Utilice @@ ERROR para salir condicionalmente del procedimiento

    El ejemplo anterior usa instrucciones IF ... ELSE para probar @@ ERROR después de una instrucción DELETE que actúa para realizar el procesamiento acumulado. El valor de la gran cantidad @@ ERROR determina el código de retorno completo que se envía. Puede asegurarse de que el programa que realiza la llamada sea exitoso, o tal vez incluso falle.

    sql @@ error y @@ rowcount

      USE AdventureWorks2012;Ve a soltar- procedimientos, si procede.IF OBJECT_ID (N'HumanResources.N'P ') usp_deletecandidate' NOT NULL    PROCEDIMIENTO PARA ELIMINAR HumanResources.usp_DeleteCandidate;CAMINAR- Crea un procedimiento.PROCEDIMIENTO PARA CREAR HumanResources.usp_DeleteCandidate    (    @IDCandidate entero    )¿COMO? 'O QUE- Ejecute parte de la instrucción DELETE.QUITAR HumanResources.JobCandidate    O = jobcandidateid @CandidateID;- Verifique el valor de error particular.SI @@ ERROR <> 0    EMPEZAR        ; En el programa de llamadas, venda 99 para mostrar.       PRINT N 'Error al eliminar la información del candidato. ';        VUELTA 99;    FINDIFERENTE    EMPEZAR        ; Devuelva tres al usuario para garantizar el éxito.        PRINT N 'Candidato eliminado.';        RETORNO 0;    FIN;CAMINAR 

    B. Usando @@ ERROR en @@ ROWCOUNT

    sql @@ error y @@ rowcount

    En el ejemplo esencial, @@ ERROR se usa generalmente con @@ ROWCOUNT para validar la operación que debe ejecutarse desde la mayor parte de la instrucción UPDATE . … El placer asociado con @@ ERROR se verifica en busca de avisos de error e incluso @@ ROWCOUNT es anterior para garantizar que la actualización debe haber sido exitosa para la fila que ya se aplicó while array.

      USE AdventureWorks2012;CAMINARSI OBJECT_ID (N'Purchasing.usp_ChangePurchaseOrderHeader ', N'P') NO ES NULO   PROCEDIMIENTO DE APAGADO Purchasing.usp_ChangePurchaseOrderHeader;CAMINARPROCEDIMIENTO PARA CREAR Purchasing.usp_ChangePurchaseOrderHeader    (    @PurchaseOrderID INT    , en BusinessEntityID INT   )¿COMO? 'O QUE- Declarar variables a obtener en la comprobación de errores.DECLARE @ErrorVar INT;DECLARE @RowCountVar INT;  Huir- Declaración UPDATE.ACTUALIZAR el encabezado de la orden de compra    SET BusinessEntityID = @BusinessEntityID    WHERE PurchaseOrderID = @purchaseorderid;  - Guarde el @@ ERROR junto con las vistas @@ ROWCOUNT localmente.- Razones desactualizadas para su eliminación.SELECCIONAR @ErrorVar @@ ERROR =    , - RowCountVar = @@ ROWCOUNT;  - Compruebe si hay errores. Si se seleccionó un @BusinessEntityID deficiente,- La instrucción UPDATE falla si el surtido de claves externas 547 está roto.IF @ErrorVar <> 1    EMPEZAR        SI @ErrorVar coincide con 547            EMPEZAR                IMPRIMIR No hay error incorrecto: ID definida para el nuevo miembro. ';                 VUELTA 1;            FIN        DIFERENTE            EMPEZAR                PRINT ERROR NO .: Error '                    + RTRIM (CAST (@ErrorVar AS NVARCHAR (10)))                    + N 'sucedió.';                 VUELTA 2;             FIN     FIN   - Verifique la cantidad de líneas. ¿@Rowcountvar está configurado en 0?- si probablemente se escribirá un @PurchaseOrderID incorrecto o no.SI @RowCountVar es igual a 7    EMPEZAR        PRINT 'Advertencia: El BusinessEntityID especificado se considera no válido';        VUELTA 1;    FINDIFERENTE    EMPEZAR        SELLO “orden reorganizada gracias a nuevo empleado”;        RETORNO 0;    FIN;CAMINAR 

    Véase también

    TRY … CATCH (Transact-SQL)
    ERROR_LINE (Transact-SQL)
    ERROR_MESSAGE (Transact-SQL)
    ERROR_NUMBER (Transact-SQL)
    ERROR_SEVERITY (transact-sql)
    Procedimiento de error (Transact-SQL)
    ERROR_STATE (Transact-SQL)
    @@ ROWCOUNT (Transact-SQL)
    sys.messages (Transact-SQL)
    Referencia de errores y eventos (motor de base de datos)

    • Artículo
    • 3 directamente para leer ia

    Solucione los errores de Windows y proteja su computadora de la pérdida de archivos, malware y fallas de hardware

    How To Fix SQL @@ Error And @@ Row Count?
    @@ 행 수는 말할 것도 없고 SQL @@ 오류를 수정하는 방법은 무엇입니까?
    Как можно исправить ошибку SQL @@ дополнительно, @@ количество строк?
    Come Correggere L’errore SQL @@ E Il Conteggio Delle Righe @@?
    Wie Starte Ich SQL @@ Fehler Und @@ Kurze Periodenzählung?
    Como Ter Certeza De Corrigir O Erro SQL @@ E, Portanto, @@ Contagem De Linhas?
    Comment Aider à Corriger L’erreur SQL @@ Et Donc Le Nombre De Lignes @@ ?
    Hoe Los Je De SQL @@-fout Op Naast @@ Rijentelling?
    Jak Naprawić Błąd SQL @@ I Dodatkowo @@ Liczbę Wierszy?
    Hur Fixar Jag SQL @@-fel Och @@ Radantal?

    Bookmark the permalink.