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 :

Compatibilité Oracle-Sql Server


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1
    Par défaut Compatibilité Oracle-Sql Server
    Hello, je cherche a "traduire" ce trigger d'Oracle en Sql Server :

    create or replace trigger T_ADRESSE
    before insert on ADRESSE for each row
    begin
    select ID_ADRESSE.nextval into :new.ID_ADRESSE from dual;
    end;
    /

    Merci a tous

    Lois

  2. #2
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Par défaut
    Salut,

    Oracle ne gère pas les champs de type Auto Increment de manière automatique, mais SQL Server si : donc pourquoi ne pas déclarer ton champ T_ADRESSE.ID_ADRESSE en auto-Increment ?
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 : 21 998
    Billets dans le blog
    6
    Par défaut
    SQL Server ne possède pas de trigger BEFORE et ne permet pas dans un trigger de jouer le code FOR EACH ROW, sauf à coder à l'aide d'un curseur.
    De plus les séquenceurs n'existent pas dans SQL Server.

    Mais comme l'a judicieusement fait remarqué Xo (qui doit être un alcoolique notoire, accro au cognac vu son pseudo ;-) ) c'est inutile sous SQL Server car il suffit d'utiliser la propriété IDENTITY dans la définition d'une colonne pour la faire devenir auto incrémentée.

    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/ * * * * *

  4. #4
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut Encore un trigger Oracle à transformer pour MS SQL Server...
    Bonjour, j'ai moi aussi un problème du genre. Je dois convertir ce trigger oracle (que je n'ai pas écris moi-même) pour sql server. Je ne sais pas comment faire... La moitié des mots clés d'oracle n'existent pas en SQL server. Est ce que quelqun peut m'aider svp ? Merci

    Voici le code du Trigger :
    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
    CREATE OR REPLACE TRIGGER flg_modif_param_critere
     AFTER
      INSERT OR DELETE OR UPDATE
     ON critere
    REFERENCING NEW AS NEW OLD AS OLD
     FOR EACH ROW
    DECLARE
     
            sRetour VARCHAR(10) := null;
        BEGIN
     
          IF INSERTING THEN
          -----------------
            PKG_TRACE.logdansfichier('Trig CRITERE::INSERTING '||TO_CHAR(:NEW.IDT_CRITERE),'C:\Database\SUMOBLV\LOG\','TraceLOT4.txt','A');		
     
     
    	BEGIN
                EXECUTE IMMEDIATE 'TRUNCATE TABLE BROUIL_SEL_ELEMENT_STATUS';
                EXECUTE IMMEDIATE 'TRUNCATE TABLE SEL_ELEMENT_STATUS';
    		 EXCEPTION
    		 	WHEN OTHERS THEN
                PKG_TRACE.logdansfichier('Trig CRITERE::INSERTING err'||sqlcode,'C:\Database\SUMOBLV\LOG\','TraceLOT4.txt','A');		
     
    	     null;
    	END;
     
          END IF ;
     
     
     
          IF UPDATING THEN
          ----------------
             BEGIN
                EXECUTE IMMEDIATE 'TRUNCATE TABLE BROUIL_SEL_ELEMENT_STATUS';
                EXECUTE IMMEDIATE 'TRUNCATE TABLE SEL_ELEMENT_STATUS';         	
    		 EXCEPTION
    		 	WHEN OTHERS THEN
    		null;
    	 END;
     
     
         END IF ;  
     
     
     
         IF DELETING THEN
         ----------------
                PKG_TRACE.logdansfichier('Trig CRITERE::DELETING','C:\Database\SUMOBLV\LOG\','TraceLOT4.txt','A');
     
    	BEGIN
                EXECUTE IMMEDIATE 'TRUNCATE TABLE BROUIL_SEL_ELEMENT_STATUS';
                EXECUTE IMMEDIATE 'TRUNCATE TABLE SEL_ELEMENT_STATUS';
     
    		 EXCEPTION
    		 	WHEN OTHERS THEN
    		 		null;
    	END;
     
         END IF ; 
     
       End ;

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 : 21 998
    Billets dans le blog
    6
    Par défaut
    Je prends en général 800 € HT / jour pour faire ce genre de boulot...
    Veuillez contacter mon entreprise : www.sqlspot.com.

    Sincères salutations
    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/ * * * * *

  6. #6
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    51
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 51
    Par défaut
    euh oui....
    Mais en fait, je préfèrerais avoir des pistes pour pouvoir le traduire moi-même...

    Par exemple, j'ai vu que le "OR replace " n'existe pas en T-SQL. Y a-t-il un moyen pour remplacer le trigger ?
    Pour le "For eache row", apparemment il faudrait que j'utilise un curseur, si j'ai bien suivi les réponses précédentes.
    Mais par exemple, ma clause REFERENCING, que devient-'elle ? elle ne semble pas exister avec SQL Server...

Discussions similaires

  1. Connection Oracle Sql Server 2005
    Par Promesses dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/06/2006, 15h03
  2. [Oracle/SQL-Server] Comment crypter une base de données ?
    Par [DreaMs] dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 28/11/2005, 18h02
  3. oracle,sql server et my sql
    Par latitude dans le forum Décisions SGBD
    Réponses: 3
    Dernier message: 01/03/2005, 09h24
  4. conflit oracle sql server ?
    Par skaii dans le forum Décisions SGBD
    Réponses: 6
    Dernier message: 10/02/2005, 18h28
  5. compatibilité entre sql server 7 et analysis service sql2000
    Par jeremie dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 29/03/2004, 15h08

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