IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

ajouter dans le eventlog


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Par défaut ajouter dans le eventlog
    Bonjour à tous,

    Je veux créer une procédure stocké qui ajoute de nouveau event à l'eventlog de sql server ( par example au cas de changement du nom d'une bdd ou meme suppression).
    donc avez vous une idée comment le faire

    merci

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Utilisez la procédure stockée étendue :

    xp_logevent (error_number, 'message') [, 'severity']

    AVEC...
    error_number : Numéro d'erreur défini par l'utilisateur supérieur à 50 000, la valeur maximale étant 1 073 741 823 (230 - 1).

    'message' : Chaîne de caractères de longueur inférieure à 8000 caractères.

    'severity' : Une des trois chaînes de caractères : INFORMATIONAL, WARNING ou ERROR. severity est facultatif, avec INFORMATIONAL comme valeur par défaut.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Par défaut
    Bonjour,
    oui c'est ce que j'ai essayé de faire mais j'arrive pas à avoir l'event dans l'eventwin.exe

    code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    #USE ClassNorthwind
    #GO
     
    #/* Specify custom message for the event log */
    #EXEC sp_addmessage @msgnum = 50018,
    #                   @severity = 16,
    #                   @msgtext = N'Supplier %d was inserted by %s',
    #                   @lang = 'us_english',
    #                   @with_log = 'true',
    #                   @replace = 'replace'
    #GO
    #
    #/* If the object already exists in the database, drop it. */
    #IF OBJECT_ID('SupplierProductInsert') IS NOT NULL
    #  DROP PROCEDURE SupplierProductInsert
    #GO
    #
    #/* Create Procedure to INSERT new Record in SUPPLIER Table */
    #CREATE PROCEDURE SupplierProductInsert
    #        @CompanyName nvarchar (40) = NULL,
    #        @ContactName nvarchar (40) = NULL,
    #        @ContactTitle nvarchar (40)= NULL,
    #        @Address nvarchar (60) = NULL,
    #        @City nvarchar (15) = NULL,
    #        @Region nvarchar (40) = NULL,
    #        @PostalCode nvarchar (10) = NULL,
    #        @Country nvarchar (15) = NULL,
    #        @Phone nvarchar (24) = NULL,
    #        @Fax nvarchar (24) = NULL,
    #        @HomePage ntext = NULL,
    #        @ProductName nvarchar (40) = NULL,
    #        @CategoryID int = NULL,
    #        @QuantityPerUnit nvarchar (20) = NULL,
    #        @UnitPrice money = NULL,
    #        @UnitsInStock smallint = NULL,
    #        @UnitsOnOrder smallint = NULL,
    #        @ReorderLevel smallint = NULL,
    #        @Discontinued bit  = NULL
    #AS
    #    IF  @CompanyName     IS NULL OR
    #        @ContactName     IS NULL OR
    #        @Address         IS NULL OR
    #        @City            IS NULL OR
    #        @Region          IS NULL OR
    #        @PostalCode      IS NULL OR
    #        @Country         IS NULL OR
    #        @Phone           IS NULL OR
    #        @ProductName     IS NULL OR
    #        @CategoryID      IS NULL OR
    #        @QuantityPerUnit IS NULL OR
    #        @Discontinued    IS NULL
    #    BEGIN
    #      PRINT 'You must provide Company Name, Contact Name, Address, City'
    #      PRINT 'Region, Postal Code, Country, Phone, Product Name, and Discontinued'
    #      PRINT '(Contact Title, Fax, Home Page, Unit Price, Units in Stock
    #          Units on Order and Reorder Level can be null.)'
    #      RETURN
    #    END
    #
    #/* Store the login identification name for use in custom message */
    #DECLARE @UserName nvarchar (60)
    #SELECT @UserName = suser_sname()
    #
    #/* Start the INSERT */
    #BEGIN TRANSACTION
    #    INSERT Suppliers (
    #        CompanyName,
    #        ContactName,
    #        Address,
    #        City,
    #        Region,
    #        PostalCode,
    #        Country,
    #        Phone)
    #    VALUES (
    #        @CompanyName,
    #        @ContactName,
    #        @Address,
    #        @City,
    #        @Region,
    #        @PostalCode,
    #        @Country,
    #        @Phone)
    #        IF @@error <> 0
    #            BEGIN
    #                ROLLBACK TRAN
    #                RETURN
    ##            END
    #
    #    /* Get just inserted @@identity value */
    #    DECLARE @InsertSupplierID int
    #    SELECT @InsertSupplierID=@@identity
    #
    #    /* Insert Record in PRODUCTS for this SupplierID */
    #    INSERT Products (
    #        ProductName,
    #        SupplierID,
    ##        CategoryID,
    #        QuantityPerUnit,
    #        Discontinued)
    #    VALUES (
    #        @ProductName,
    #        @InsertSupplierID,
    #        @CategoryID,
    #        @QuantityPerUnit,
    #        @Discontinued)
    #        IF @@error <> 0
    #            BEGIN
    #                ROLLBACK TRAN
    #                RETURN
    #            END
    #
    #  /* Send custom message to event log */
    #  RAISERROR (50018, 16, 1, @InsertSupplierID, @UserName) With log
    #
    #COMMIT TRANSACTION
    #GO
    #
    #/* Execute the Stored Procedure */
    #EXEC SupplierProductInsert
    #        @CompanyName = 'Akadia',
    #        @ContactName = 'Martin Zahn',
    #        @Address = 'Arvenweg 4',
    #        @City = 'Thun',
    #        @Region = 'Bern',
    #        @PostalCode = '3604',
    #        @Country = 'CH',
    #        @Phone = '0333358620',
    #        @ProductName = 'Transtec',
    #        @CategoryID = '1',
    #        @QuantityPerUnit = '1',
    #        @UnitPrice = 1,
    #        @Discontinued = 0
    #
    #
    master..xp_logevent 50018, 'Test Event', 'ERROR'
    à l'evenwin il m'affiche seulement les events de la sysmessages à partir de l'erreur num 17050 sans ajouter cette dérnière

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 002
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 002
    Billets dans le blog
    6
    Par défaut
    Merci d'indenter votre code et d'utiliser la balise CODE.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 81
    Par défaut
    Bonjour,
    oui c'est ce que j'ai essayé de faire mais j'arrive pas à avoir l'event dans l'eventwin.exe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    code:
    USE ClassNorthwind
    GO
    /* Specify custom message for the event log */
    EXEC sp_addmessage @msgnum = 50018,
                       @severity = 16,
                       @msgtext = N'Supplier %d was inserted by %s',
                       @lang = 'us_english',
                       @with_log = 'true',
                       @replace = 'replace'
    GO
     
    /* If the object already exists in the database, drop it. */
    IF OBJECT_ID('SupplierProductInsert') IS NOT NULL
      DROP PROCEDURE SupplierProductInsert
    GO
     
    /* Create Procedure to INSERT new Record in SUPPLIER Table */
    CREATE PROCEDURE SupplierProductInsert
            @CompanyName nvarchar (40) = NULL,
           @ContactName nvarchar (40) = NULL,
            @ContactTitle nvarchar (40)= NULL,
            @Address nvarchar (60) = NULL,
            @City nvarchar (15) = NULL,
            @Region nvarchar (40) = NULL,
            @PostalCode nvarchar (10) = NULL,
            @Country nvarchar (15) = NULL,
            @Phone nvarchar (24) = NULL,
            @Fax nvarchar (24) = NULL,
            @HomePage ntext = NULL,
            @ProductName nvarchar (40) = NULL,
            @CategoryID int = NULL,
            @QuantityPerUnit nvarchar (20) = NULL,
            @UnitPrice money = NULL,
            @UnitsInStock smallint = NULL,
            @UnitsOnOrder smallint = NULL,
            @ReorderLevel smallint = NULL,
            @Discontinued bit  = NULL
    AS
        IF  @CompanyName     IS NULL OR
            @ContactName     IS NULL OR
            @Address         IS NULL OR
            @City            IS NULL OR
            @Region          IS NULL OR
            @PostalCode      IS NULL OR
            @Country         IS NULL OR
            @Phone           IS NULL OR
            @ProductName     IS NULL OR
            @CategoryID      IS NULL OR
            @QuantityPerUnit IS NULL OR
            @Discontinued    IS NULL
        BEGIN
          PRINT 'You must provide Company Name, Contact Name, Address, City'
          PRINT 'Region, Postal Code, Country, Phone, Product Name, and Discontinued'
          PRINT '(Contact Title, Fax, Home Page, Unit Price, Units in Stock
              Units on Order and Reorder Level can be null.)'
          RETURN
        END
     
    /* Store the login identification name for use in custom message */
    DECLARE @UserName nvarchar (60)
    SELECT @UserName = suser_sname()
     
    /* Start the INSERT */
    BEGIN TRANSACTION
        INSERT Suppliers (
            CompanyName,
            ContactName,
            Address,
            City,
            Region,
            PostalCode,
            Country,
            Phone)
        VALUES (
            @CompanyName,
            @ContactName,
            @Address,
            @City,
            @Region,
            @PostalCode,
            @Country,
            @Phone)
            IF @@error <> 0
                BEGIN
                    ROLLBACK TRAN
                    RETURN
                END
     
        /* Get just inserted @@identity value */
        DECLARE @InsertSupplierID int
        SELECT @InsertSupplierID=@@identity
     
        /* Insert Record in PRODUCTS for this SupplierID */
        INSERT Products (
            ProductName,
            SupplierID,
            CategoryID,
            QuantityPerUnit,
            Discontinued)
        VALUES (
            @ProductName,
            @InsertSupplierID,
            @CategoryID,
            @QuantityPerUnit,
            @Discontinued)
            IF @@error <> 0
                BEGIN
                    ROLLBACK TRAN
                    RETURN
                END
     
    master..EXEC xp_logevent 50018, 'Test Event', 'ERROR'
     
    /* Send custom message to event log */
      RAISERROR (50018, 16, 1, @InsertSupplierID, @UserName) With log
     
    COMMIT TRANSACTION
    GO
     
    /* Execute the Stored Procedure */
    EXEC SupplierProductInsert
            @CompanyName = 'Akadia',
          @ContactName = 'Martin Zahn',
            @Address = 'Arvenweg 4',
            @City = 'Thun',
            @Region = 'Bern',
            @PostalCode = '3604',
            @Country = 'CH',
            @Phone = '0333358620',
          @ProductName = 'Transtec',
            @CategoryID = '1',
            @QuantityPerUnit = '1',
            @UnitPrice = 1,
            @Discontinued = 0

    à l'evenwin il m'affiche seulement les events de la sysmessages à partir de l'erreur num 17050 sans ajouter cette dérnière

Discussions similaires

  1. [VBS] Ecrire dans les Eventlog avec VBS
    Par Hakkou dans le forum VBScript
    Réponses: 1
    Dernier message: 04/10/2004, 14h50
  2. Ajout dans une base
    Par semaj_james dans le forum Bases de données
    Réponses: 3
    Dernier message: 01/06/2004, 16h23
  3. [LG]probleme d'ajout dans une liste chainée...
    Par misteryann dans le forum Langage
    Réponses: 5
    Dernier message: 08/03/2004, 20h28
  4. ajouter dans un fichier xml
    Par hamma2 dans le forum APIs
    Réponses: 4
    Dernier message: 29/09/2003, 12h57
  5. Connaitre l'unitée à ajouter dans USES
    Par DelphiCool dans le forum Langage
    Réponses: 7
    Dernier message: 01/08/2002, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo