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

MS SQL Server Discussion :

Aide sur une requête


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut Aide sur une requête
    Hello a tous !!!!

    Voila, je suis débutant en SQL Serveur et j'ai besoin de votre aide.

    J'ai une requête qui me permet de supprimer des comptes d'une base.
    et j'ai plusieurs comptes a supprimer.

    Comment puis-je faire pour les supprimer tous d'un coup sans avoir à changer à chaque fois mon N° de compte dans ma requête?

    ci-dessous le 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
    136
    137
    138
    139
    140
    141
    142
    143
    USE 'XXXXXX'
     
    -- Check user rights
    IF CURRENT_USER != 'dbo'
    BEGIN
       RAISERROR(15247, 20, 1) WITH NOWAIT;
       RETURN
    END;
     
    IF NOT EXISTS(SELECT VERSION FROM dbo.DB_VERSION WHERE VERSION LIKE '2.3.23.%')
        RAISERROR('Wrong database version', 20, 1) WITH LOG;
    GO
     
     
    -- Initialize transaction
    BEGIN TRANSACTION U2_T1;
     
    	-- Start flow
    	BEGIN
     
    	DECLARE @old_code NVARCHAR(10)
    	-- Initialize values
    	SET @old_code = 'XXXXX'
     
    	IF @old_code is null
    		RAISERROR('old_code must contain a legal value', 20, 1)  WITH LOG;
     
    	IF NOT EXISTS(SELECT ACC_CODE FROM ACCOUNTS WHERE ACC_CODE = @old_code)
    		RAISERROR('new_code doesn''t exists in table ACCOUNTS', 20, 1)  WITH LOG;
     
    	DELETE ACC_GROUP_CONTENT WHERE ACC_CODE = @old_code
    	DELETE ACC_GROUPING WHERE POOLING_ACC = @old_code
    	DELETE ACCOUNT_ID WHERE ACC_CODE = @old_code
    	DELETE ARCHIVING_ACCOUNTS WHERE ACCOUNT_CODE = @old_code
    	DELETE ARCHIVING_REJECT_REASON WHERE ACCOUNT_CODE = @old_code
    	DELETE AUDIT_CASH_LEDGER_INFO WHERE ACC_CODE = @old_code
    	DELETE AUDIT_CASH_TRAN_INFO WHERE DEBIT_ACC_CODE = @old_code
    	DELETE AUDIT_CASH_TRAN_INFO WHERE CREDIT_ACC_CODE = @old_code
    	DELETE AUDIT_REC_ACC_INFO WHERE ACC_CODE = @old_code
    	DELETE AUDIT_REC_BANK_INFO WHERE ACC_CODE = @old_code
    	DELETE BK_CLAIM_LEDGER WHERE ACC_CODE = @old_code
    	DELETE BK_MAN_CONTROL WHERE ACC_CODE = @old_code
    	DELETE BK_MAN_LEDGER WHERE ACC_CODE = @old_code
    	DELETE BK_MAN_LEDGER_UNIQUE WHERE ACC_CODE = @old_code
    	DELETE BK_MAN_LOCK WHERE ACC_CODE = @old_code
    	DELETE BK_MAN_REPORT WHERE ACC_CODE = @old_code
    	DELETE BK_MAN_STAT WHERE ACC_CODE = @old_code
    	DELETE BK_MAN_TEMP WHERE ACC_CODE = @old_code
    	DELETE BUDGET_EXCEPTIONS WHERE ACC_CODE = @old_code
    	DELETE CASH_BALANCES WHERE ACC_CODE = @old_code
    	DELETE CASH_DISC_LEDGER WHERE ACC_CODE = @old_code
    	DELETE CASH_INT_FLOW_COND WHERE ACC_CODE = @old_code
    	DELETE CASH_LEDGER WHERE ACC_CODE = @old_code
    	DELETE CASH_MODEL WHERE ACC_CODE = @old_code
    	DELETE CASH_MODEL WHERE BENEFICIARY_ACC = @old_code
    	DELETE CASH_MODEL WHERE CASH_ACC = @old_code
    	DELETE CASH_POOL_COND WHERE ACC_CODE = @old_code
    	DELETE CASH_PREMIUM_LEDGER WHERE ACC_CODE = @old_code
    	DELETE CASH_TRANSACTIONS WHERE DEBIT_ACC_CODE = @old_code
    	DELETE CASH_TRANSACTIONS WHERE CREDIT_ACC_CODE = @old_code
    	DELETE COMMERC_ARCH WHERE CHARGE_ACC = @old_code
    	DELETE COMMERC_TRANSFER WHERE CHARGE_ACC = @old_code
    	DELETE COMMERCIAL_MODEL WHERE ACC_CODE = @old_code
    	DELETE COMMERCIAL_MODEL WHERE CHARGE_ACC = @old_code
    	DELETE COMMISSION_COND WHERE ACC_CODE = @old_code
    	DELETE CREDIT_COND WHERE ACC_CODE = @old_code
    	DELETE DISCOUNT_MODELS WHERE ACC_CODE = @old_code
    	DELETE DOM_MASS_TRANSFER WHERE ACC_CODE = @old_code
    	DELETE DOM_STAND_MODELS WHERE ACC_CODE = @old_code
    	DELETE DOM_STAND_MOULD WHERE ACC_CODE = @old_code
    	DELETE DOMESTIC_MODEL WHERE BENEFICIARY_ACC = @old_code
    	DELETE DOMESTIC_MODEL WHERE ACC_CODE = @old_code
    	DELETE DOMESTIC_MOULD WHERE ACC_CODE = @old_code
    	DELETE DRAFTS_POST WHERE ACCOUNT_CODE = @old_code
    	DELETE FEE_LINKS WHERE ACC_CODE = @old_code
    	DELETE FINANCING_COND WHERE ACC_CODE = @old_code
    	DELETE FX_HOLDINGS WHERE ACC_CODE = @old_code
    	DELETE FX_HOLDINGS WHERE CNT_ACC_CODE = @old_code
    	DELETE HOLDING_COUPLES WHERE HOLDING_ACC = @old_code
    	DELETE HOLDING_COUPLES WHERE FILIAL_ACC = @old_code
    	DELETE IBC_FLOW_LINK WHERE ACC_CODE = @old_code
    	DELETE IBC_FLOW_LIST WHERE ACC_CODE = @old_code
    	DELETE INTERCMP_PAYMENTS WHERE ISSUER_ACC_CODE = @old_code
    	DELETE INTERCMP_PAYMENTS WHERE BENEFICIARY_ACC_CODE = @old_code
    	DELETE INTERNAT_ARCH WHERE CHARGE_ACC = @old_code
    	DELETE INTERNAT_MODEL WHERE ACC_CODE = @old_code
    	DELETE INTERNAT_MODEL WHERE CHARGE_ACC = @old_code
    	DELETE INTERNAT_TRANSFER WHERE CHARGE_ACC = @old_code
    	DELETE INVESTMENT_COND WHERE ACC_CODE = @old_code
    	DELETE LIMITS_ACCOUNTS WHERE ACC_CODE = @old_code
    	DELETE LIMITS_ACCOUNTS_CREDIT WHERE ACC_CODE = @old_code
    	DELETE LIMITS_ACCOUNTS_DEBIT WHERE ACC_CODE = @old_code
    	DELETE LOAN_FLOWS WHERE ACC_CODE = @old_code
    	DELETE LOANS WHERE AMORT_CMP_ACC = @old_code
    	DELETE LOANS WHERE ADDIT_PAYMENT_CMP_ACCOUNT=@old_code
    	DELETE LOANS WHERE PAYMENTS_CMP_ACC = @old_code
    	DELETE LOANS WHERE INT_CMP_ACC = @old_code
    	DELETE LOANS WHERE FEE_CMP_ACC = @old_code
    	DELETE MUTUAL_FUNDS WHERE ACC_CODE = @old_code
    	DELETE MUTUAL_FUNDS WHERE DEPOSIT_CMP_ACC = @old_code
    	DELETE MUTUAL_FUNDS WHERE FEE_CMP_ACC = @old_code
    	DELETE NREC_ACC WHERE ACC_CODE = @old_code
    	DELETE NREC_BANK WHERE ACC_CODE = @old_code
    	DELETE OVERDRAFT_COND WHERE ACC_CODE = @old_code
    	DELETE PAYMENT WHERE ACC_CODE = @old_code
    	DELETE PAYMENT WHERE CASH_ACC = @old_code
    	DELETE PAYMENT WHERE CHARGE_ACC = @old_code
    	DELETE PAYMENT_ARCH WHERE CHARGE_ACC = @old_code
    	DELETE PAYMENT_ARCH WHERE ACC_CODE = @old_code
    	DELETE PAYMENT_ARCH WHERE CASH_ACC = @old_code
    	DELETE PAYMENT_MODEL WHERE ACC_CODE = @old_code
    	DELETE PAYMENT_MODEL WHERE CASH_ACC = @old_code
    	DELETE PRE_GROUP WHERE ACC_CODE = @old_code
    	DELETE PRE_REC WHERE PRE_REC_ACC_CODE = @old_code
    	DELETE REC_ACC WHERE ACC_CODE = @old_code
    	DELETE REC_ACC_ARH WHERE ACC_CODE = @old_code
    	DELETE REC_BANK WHERE ACC_CODE = @old_code
    	DELETE REC_BANK_ARH WHERE ACC_CODE = @old_code
    	DELETE SHORT_TERMS WHERE FEE_CMP_ACC = @old_code
    	DELETE SHORT_TERMS WHERE RED_CMP_ACC = @old_code
    	DELETE SHORT_TERMS WHERE INT_CMP_ACC = @old_code
    	DELETE SHORT_TERMS WHERE DEPOSIT_CMP_ACC = @old_code
    	DELETE SHORT_TERMS WHERE ACC_CODE = @old_code
    	DELETE SPE_RAP_ACCOUNTS WHERE ACC_CODE = @old_code
    	DELETE STANDING_DEPOSITS WHERE ACC_CODE = @old_code
    	DELETE STANDING_DEPOSITS WHERE CHARGE_ACC_CODE = @old_code
    	DELETE STANDING_DEPOSITS WHERE UNPAID_ACC_CODE = @old_code
    	DELETE STANDING_PROFILES WHERE ACC_CODE = @old_code
    	DELETE STANDINGS WHERE ACC_CODE = @old_code
    	DELETE STANDINGS_ARCHIVE WHERE ACC_CODE = @old_code
    	DELETE STATS_REC_AR WHERE ACC_CODE = @old_code
    	DELETE SUFFIXES WHERE ACC_CODE = @old_code
    	DELETE TRANSFER_PROFILE WHERE ACC_CODE = @old_code
    	DELETE TRANSFER_PROFILE WHERE CASH_ACC = @old_code
    	DELETE VALUE_TERMS WHERE ACC_CODE = @old_code
    	DELETE ZERO_BALANCING_ACCOUNT WHERE BANK_ACCOUNT = @old_code
     
    	DELETE FROM ACCOUNTS WHERE ACC_CODE = @old_code
     
    END;
    GO
     
    COMMIT TRAN U2_T1;
    Merci pour votre aide

  2. #2
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    Encapsule ton code dans une procédure stockée, et ensuite appelle ta procédure stockée en lui passant la valeur en paramètre. Exemple en deux secondes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CREATE PROCEDURE dbo.DeleteAccount
       @old_code nvarchar(10)
    AS BEGIN 
    -- tout ton code ici (sauf le USE)
    END
    Ensuite :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EXEC dbo.DeleteAccount 'XXXXX'

  3. #3
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 228
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 228
    Billets dans le blog
    25
    Par défaut
    Si c'est pour virer TOUS les comptes, il suffit de remplacer le @old_count par IS NOT NULL. Soyez bien sûr de ce que vous voulez faire !
    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
     
    DELETE ACC_GROUP_CONTENT WHERE ACC_CODE IS NOT NULL
    DELETE ACC_GROUPING WHERE POOLING_ACC IS NOT NULL
    DELETE ACCOUNT_ID WHERE ACC_CODE IS NOT NULL
    DELETE ARCHIVING_ACCOUNTS WHERE ACCOUNT_CODE IS NOT NULL
    DELETE ARCHIVING_REJECT_REASON WHERE ACCOUNT_CODE IS NOT NULL
    DELETE AUDIT_CASH_LEDGER_INFO WHERE ACC_CODE IS NOT NULL
    DELETE AUDIT_CASH_TRAN_INFO WHERE DEBIT_ACC_CODE IS NOT NULL
    DELETE AUDIT_CASH_TRAN_INFO WHERE CREDIT_ACC_CODE IS NOT NULL
    DELETE AUDIT_REC_ACC_INFO WHERE ACC_CODE IS NOT NULL
    DELETE AUDIT_REC_BANK_INFO WHERE ACC_CODE IS NOT NULL
    DELETE BK_CLAIM_LEDGER WHERE ACC_CODE IS NOT NULL
    DELETE BK_MAN_CONTROL WHERE ACC_CODE IS NOT NULL
    DELETE BK_MAN_LEDGER WHERE ACC_CODE IS NOT NULL
    DELETE BK_MAN_LEDGER_UNIQUE WHERE ACC_CODE IS NOT NULL
    DELETE BK_MAN_LOCK WHERE ACC_CODE IS NOT NULL
    DELETE BK_MAN_REPORT WHERE ACC_CODE IS NOT NULL
    DELETE BK_MAN_STAT WHERE ACC_CODE IS NOT NULL
    DELETE BK_MAN_TEMP WHERE ACC_CODE IS NOT NULL
    DELETE BUDGET_EXCEPTIONS WHERE ACC_CODE IS NOT NULL
    DELETE CASH_BALANCES WHERE ACC_CODE IS NOT NULL
    DELETE CASH_DISC_LEDGER WHERE ACC_CODE IS NOT NULL
    DELETE CASH_INT_FLOW_COND WHERE ACC_CODE IS NOT NULL
    DELETE CASH_LEDGER WHERE ACC_CODE IS NOT NULL
    DELETE CASH_MODEL WHERE ACC_CODE IS NOT NULL
    DELETE CASH_MODEL WHERE BENEFICIARY_ACC IS NOT NULL
    DELETE CASH_MODEL WHERE CASH_ACC IS NOT NULL
    DELETE CASH_POOL_COND WHERE ACC_CODE IS NOT NULL
    DELETE CASH_PREMIUM_LEDGER WHERE ACC_CODE IS NOT NULL
    DELETE CASH_TRANSACTIONS WHERE DEBIT_ACC_CODE IS NOT NULL
    DELETE CASH_TRANSACTIONS WHERE CREDIT_ACC_CODE IS NOT NULL
    DELETE COMMERC_ARCH WHERE CHARGE_ACC IS NOT NULL
    DELETE COMMERC_TRANSFER WHERE CHARGE_ACC IS NOT NULL
    DELETE COMMERCIAL_MODEL WHERE ACC_CODE IS NOT NULL
    DELETE COMMERCIAL_MODEL WHERE CHARGE_ACC IS NOT NULL
    DELETE COMMISSION_COND WHERE ACC_CODE IS NOT NULL
    DELETE CREDIT_COND WHERE ACC_CODE IS NOT NULL
    DELETE DISCOUNT_MODELS WHERE ACC_CODE IS NOT NULL
    DELETE DOM_MASS_TRANSFER WHERE ACC_CODE IS NOT NULL
    DELETE DOM_STAND_MODELS WHERE ACC_CODE IS NOT NULL
    DELETE DOM_STAND_MOULD WHERE ACC_CODE IS NOT NULL
    DELETE DOMESTIC_MODEL WHERE BENEFICIARY_ACC IS NOT NULL
    DELETE DOMESTIC_MODEL WHERE ACC_CODE IS NOT NULL
    DELETE DOMESTIC_MOULD WHERE ACC_CODE IS NOT NULL
    DELETE DRAFTS_POST WHERE ACCOUNT_CODE IS NOT NULL
    DELETE FEE_LINKS WHERE ACC_CODE IS NOT NULL
    DELETE FINANCING_COND WHERE ACC_CODE IS NOT NULL
    DELETE FX_HOLDINGS WHERE ACC_CODE IS NOT NULL
    DELETE FX_HOLDINGS WHERE CNT_ACC_CODE IS NOT NULL
    DELETE HOLDING_COUPLES WHERE HOLDING_ACC IS NOT NULL
    DELETE HOLDING_COUPLES WHERE FILIAL_ACC IS NOT NULL
    DELETE IBC_FLOW_LINK WHERE ACC_CODE IS NOT NULL
    DELETE IBC_FLOW_LIST WHERE ACC_CODE IS NOT NULL
    DELETE INTERCMP_PAYMENTS WHERE ISSUER_ACC_CODE IS NOT NULL
    DELETE INTERCMP_PAYMENTS WHERE BENEFICIARY_ACC_CODE IS NOT NULL
    DELETE INTERNAT_ARCH WHERE CHARGE_ACC IS NOT NULL
    DELETE INTERNAT_MODEL WHERE ACC_CODE IS NOT NULL
    DELETE INTERNAT_MODEL WHERE CHARGE_ACC IS NOT NULL
    DELETE INTERNAT_TRANSFER WHERE CHARGE_ACC IS NOT NULL
    DELETE INVESTMENT_COND WHERE ACC_CODE IS NOT NULL
    DELETE LIMITS_ACCOUNTS WHERE ACC_CODE IS NOT NULL
    DELETE LIMITS_ACCOUNTS_CREDIT WHERE ACC_CODE IS NOT NULL
    DELETE LIMITS_ACCOUNTS_DEBIT WHERE ACC_CODE IS NOT NULL
    DELETE LOAN_FLOWS WHERE ACC_CODE IS NOT NULL
    DELETE LOANS WHERE AMORT_CMP_ACC IS NOT NULL
    DELETE LOANS WHERE ADDIT_PAYMENT_CMP_ACCOUNT=@old_code
    DELETE LOANS WHERE PAYMENTS_CMP_ACC IS NOT NULL
    DELETE LOANS WHERE INT_CMP_ACC IS NOT NULL
    DELETE LOANS WHERE FEE_CMP_ACC IS NOT NULL
    DELETE MUTUAL_FUNDS WHERE ACC_CODE IS NOT NULL
    DELETE MUTUAL_FUNDS WHERE DEPOSIT_CMP_ACC IS NOT NULL
    DELETE MUTUAL_FUNDS WHERE FEE_CMP_ACC IS NOT NULL
    DELETE NREC_ACC WHERE ACC_CODE IS NOT NULL
    DELETE NREC_BANK WHERE ACC_CODE IS NOT NULL
    DELETE OVERDRAFT_COND WHERE ACC_CODE IS NOT NULL
    DELETE PAYMENT WHERE ACC_CODE IS NOT NULL
    DELETE PAYMENT WHERE CASH_ACC IS NOT NULL
    DELETE PAYMENT WHERE CHARGE_ACC IS NOT NULL
    DELETE PAYMENT_ARCH WHERE CHARGE_ACC IS NOT NULL
    DELETE PAYMENT_ARCH WHERE ACC_CODE IS NOT NULL
    DELETE PAYMENT_ARCH WHERE CASH_ACC IS NOT NULL
    DELETE PAYMENT_MODEL WHERE ACC_CODE IS NOT NULL
    DELETE PAYMENT_MODEL WHERE CASH_ACC IS NOT NULL
    DELETE PRE_GROUP WHERE ACC_CODE IS NOT NULL
    DELETE PRE_REC WHERE PRE_REC_ACC_CODE IS NOT NULL
    DELETE REC_ACC WHERE ACC_CODE IS NOT NULL
    DELETE REC_ACC_ARH WHERE ACC_CODE IS NOT NULL
    DELETE REC_BANK WHERE ACC_CODE IS NOT NULL
    DELETE REC_BANK_ARH WHERE ACC_CODE IS NOT NULL
    DELETE SHORT_TERMS WHERE FEE_CMP_ACC IS NOT NULL
    DELETE SHORT_TERMS WHERE RED_CMP_ACC IS NOT NULL
    DELETE SHORT_TERMS WHERE INT_CMP_ACC IS NOT NULL
    DELETE SHORT_TERMS WHERE DEPOSIT_CMP_ACC IS NOT NULL
    DELETE SHORT_TERMS WHERE ACC_CODE IS NOT NULL
    DELETE SPE_RAP_ACCOUNTS WHERE ACC_CODE IS NOT NULL
    DELETE STANDING_DEPOSITS WHERE ACC_CODE IS NOT NULL
    DELETE STANDING_DEPOSITS WHERE CHARGE_ACC_CODE IS NOT NULL
    DELETE STANDING_DEPOSITS WHERE UNPAID_ACC_CODE IS NOT NULL
    DELETE STANDING_PROFILES WHERE ACC_CODE IS NOT NULL
    DELETE STANDINGS WHERE ACC_CODE IS NOT NULL
    DELETE STANDINGS_ARCHIVE WHERE ACC_CODE IS NOT NULL
    DELETE STATS_REC_AR WHERE ACC_CODE IS NOT NULL
    DELETE SUFFIXES WHERE ACC_CODE IS NOT NULL
    DELETE TRANSFER_PROFILE WHERE ACC_CODE IS NOT NULL
    DELETE TRANSFER_PROFILE WHERE CASH_ACC IS NOT NULL
    DELETE VALUE_TERMS WHERE ACC_CODE IS NOT NULL
    DELETE ZERO_BALANCING_ACCOUNT WHERE BANK_ACCOUNT IS NOT NULL
    DELETE FROM ACCOUNTS WHERE ACC_CODE IS NOT NULL
    Sr DBA Oracle / MS-SQL / MySQL / Postgresql / SAP-Sybase / Informix / DB2

    N'oublie pas de consulter mes articles, mon blog, les cours et les FAQ SGBD

    Attention : pas de réponse technique par MP : pensez aux autres, passez par les forums !

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    bonjour fadace,

    Non je ne veux pas supprimer tout les comptes. Seulement certains pour lesquels j'ai un identifiant.

    Rudy,

    Je vais tester ta méthode...

    merci à vous deux...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    107
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 107
    Par défaut
    bonjour,

    Lorsque je fais une vérification de la syntaxe j'ai 2 erreurs :

    Erreur 156 : Syntaxe incorrecte vers le mot clé "AS"
    Ligne13 : Syntaxe incorrecte vers ";"

    ci-dessous le début de la procédure :


    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
    CREATE PROCEDURE dbo.deleteaccount  AS 
     
    AS BEGIN 
     
    -- Vérification des droits de l'utilisateur courant
    IF CURRENT_USER != 'dbo'
    BEGIN
       RAISERROR(15247, 20, 1) WITH NOWAIT;
       RETURN
    END;
     
    IF NOT EXISTS(SELECT VERSION FROM dbo.DB_VERSION WHERE VERSION LIKE '2.3.23.%')
        RAISERROR('Mauvaise version de la BDD', 20, 1) WITH LOG; 
    GO
     
     
    -- Initialisation de la transaction
    BEGIN TRANSACTION U2_T1;
     
    	-- Démarrage de la transaction
    	BEGIN
     
    	DECLARE @old_code NVARCHAR(10)
     
    -- Initialisation de  "@oldcode"
    	SET @old_code = 'X'
     
    	IF @old_code is null
    		RAISERROR('old_code must contain a legal value', 20, 1)  WITH LOG;
     
    	IF NOT EXISTS(SELECT ACC_CODE FROM ACCOUNTS WHERE ACC_CODE = @old_code)
    		RAISERROR('ce code n existe pas dans table ACCOUNTS', 20, 1)  WITH LOG;
    merci à ceux qui pourront m'aider
    Bonne journée à tous !!!

  6. #6
    Membre Expert
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Par défaut
    Salut,

    Tu as deux fois AS au début :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    CREATE PROCEDURE dbo.deleteaccount  AS 
     
    AS BEGIN
    Un seul suffit ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CREATE PROCEDURE dbo.deleteaccount
    AS BEGIN
    Ensuite, enlève le GO ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IF NOT EXISTS(SELECT VERSION FROM dbo.DB_VERSION WHERE VERSION LIKE '2.3.23.%')
        RAISERROR('Mauvaise version de la BDD', 20, 1) WITH LOG; 
    GO
    Pour ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    IF NOT EXISTS(SELECT VERSION FROM dbo.DB_VERSION WHERE VERSION LIKE '2.3.23.%')
        RAISERROR('Mauvaise version de la BDD', 20, 1) WITH LOG;
    Le GO indique la fin du batch. Il faut les enlever jusqu'à la fin de la création de la procédure, qui se terminera par un END, puisqu'elle commence par un BEGIN

Discussions similaires

  1. [SQL] Besoin d'aide sur une requête
    Par Angath dans le forum Langage SQL
    Réponses: 2
    Dernier message: 17/01/2006, 16h26
  2. Réponses: 1
    Dernier message: 03/08/2005, 11h41
  3. Besoin d'aide sur une requête (JOIN + COUNT ?)
    Par PanzerKunst dans le forum Langage SQL
    Réponses: 2
    Dernier message: 01/06/2005, 10h29
  4. Aide sur une requête
    Par TshAw dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/02/2005, 11h42
  5. Aide sur une requête (Group By...??)
    Par Cocolapin dans le forum Langage SQL
    Réponses: 4
    Dernier message: 12/12/2004, 10h26

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