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 :

Convertir 1 requête qui fonctionne en Sybase vers SQLServer à propos d'1 select into avec ajout d'une identity


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut Convertir 1 requête qui fonctionne en Sybase vers SQLServer à propos d'1 select into avec ajout d'une identity
    Cette requête marche en sybase mais ne passe pas sur SQL Server, savez-vous comment l'écrire s'il vous plaît? Je veux rajouter automatiquement une colonne identifiante à un select into en fait. Merci pour votre aide.

    select id=identity , A.col1, A.col2, B.col1,A.col3, A.col4, A.col5, A.col6, NB=0
    into #toto
    from table1 A, table2 B
    where A.col2 = B.col2

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    En 2 étapes
    1. créer la table temporaire (avec ID comme identity column)
    2. la remplir

    peut être que qq a une méthode plus efficace

    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
    create table #toto
    ([ID] [int] IDENTITY(1,1) NOT NULL,
    	Col1A int null,
    	Col2A int null,
    	Col1B int null,
    	Col3A int null,
    	Col4A int null,
    	Col5A int null,
    	Col6A int null,
    	NB int null)
     
    insert into #toto 
        select A.col1, A.col2, B.col1,A.col3, A.col4, A.col5, A.col6, NB=0 
        from table1 as a
        inner join table2 as b
        on a.col2 = b.col2

    <inner join> si les records doivent exister dans les 2 tables
    <left outer join> si les records dans la table 2 sont facultatifs

  3. #3
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut
    Merci, mais effectivement l'idée c'est de le faire en une seule requête justement. Donc si quelqu'un sait, je suis toujours preneur, merci.

  4. #4
    Membre habitué
    Inscrit en
    Novembre 2004
    Messages
    415
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 415
    Points : 138
    Points
    138
    Par défaut
    J'ai trouvé ma réponse en fait :

    select id=identity(INT,1,1), un = A.col1, deux = B.col1
    into #toto
    from table1 A, table2 B
    where A.col2 = B.col2

  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 772
    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 772
    Points : 52 735
    Points
    52 735
    Billets dans le blog
    5
    Par défaut
    Vous pouvez aussi utiliser la clause OUTPUT de SQL Server pour ce faire....

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

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/08/2009, 15h40
  2. [MySQL] Requête qui fonctionne à moitié
    Par TomDelonge dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 12/03/2009, 16h24
  3. Requête qui fonctionne sous Access mais pas JDBC
    Par loic911 dans le forum JDBC
    Réponses: 1
    Dernier message: 12/09/2008, 16h46
  4. Réponses: 1
    Dernier message: 03/08/2007, 10h09
  5. Requête qui fonctionne 1 fois sur 100
    Par nicotine002 dans le forum Langage
    Réponses: 1
    Dernier message: 05/08/2006, 11h42

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