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 :

Effectuer un insert a partir d'une table d'une base vers une autre base identique


Sujet :

MS SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Par d�faut Effectuer un insert a partir d'une table d'une base vers une autre base identique
    Bonsoir tout le monde,

    Cela faisait tr�����s longtemps que je n'avais post� ici

    Jusque l�, je trouvais toujours plus ou moins comment me d�brouiller.

    Si je prends la plume ce soir, c'est pour qu�rir votre aide donc !

    Le pitch :

    Je poss�de une base sous Microsoft sql server (qui sert pour le gestionnaire de ticket de la boite). Sur cette base, pour des raisons de licence, j'ai d� supprimer des donn�es... je sais....
    Nous avions atteint les 10 Go de SQL Express, le service devait tourner le weekend absolument.

    J'ai tout de m�me effectu� une sauvegarde compl�te.

    Sauvegarde restaur�e sur une nouvelle base du m�me serveur.

    J'arrive retrouver les donn�es de la base restaur�e et qui sont manquantes sur la base de production.

    J'utilise cette requ�te (si jamais vous voyez quelque chose de faux^^)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    select * from [_SMDBA_].[_TELDETAI_] as TI23
    left join [TI20].[_SMDBA_].[_TELDETAI_] as TI20 
    on TI23.sequence = TI20.SEQUENCE
    where TI20.SEQUENCE is null
    Je retrouve avec 1412 enregistrements.

    Maintenant je souhaiterais les ins�rer dans la m�me table mais de la base de production :

    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
     
    begin tran
    INSERT INTO [TI20].[_SMDBA_].[_TELDETAI_]
     ([SEQUENCE]
               ,[LASTMODIFIED]
               ,[LASTUSER]
               ,[_GROUP_]
               ,[NOTE]
               ,[PROBLEM #]
               ,[PDATE]
               ,[PERSON]
               ,[TIME SPENT]
               ,[ACTION]
               ,[COMMANDLINE]
               ,[_INACTIVE_:]
               ,[LINK_MSCRM_ACTIVITYID]
               ,[FROM_GROUP:]
               ,[TO_GROUP:]
               ,[SESSIONID]
               ,[EMAILTOEMAILFROM]
               ,[SEQ_EMAILMGMT]
               ,[NOTETYPE]
               ,[ISPRIVATE]
               ,[REQUESTOR#]
               ,[CHARGE]
               ,[TI11_NoteID])
         VALUES
    (select * from [_SMDBA_].[_TELDETAI_] as TI23
    left join [TI20].[_SMDBA_].[_TELDETAI_] as TI20 
    on TI23.sequence = TI20.SEQUENCE
    where TI20.SEQUENCE is null)

    Et l�... bah �a marche pas. Et le message d'erreur n'est pas des plus clair malheureusement

    Msg*156, Niveau*15, �tat*1, Ligne*37
    Syntaxe incorrecte vers le mot cl� 'select'.
    Msg*102, Niveau*15, �tat*1, Ligne*40
    Syntaxe incorrecte vers ')'.

    Heure de fin*: 2024-02-02T18:46:39.6441641+01:00
    Est-ce que par le plus grand des hasards, vous auriez une id�e ?

    TI20 �tant la base de production avec les donn�es manquantes.

    Ti_2023 �tant la base restaur�e compl�te.

    Comme j'ai plusieurs tables � faire, si celle-ci passe, les autres passeront

    Merci par avance pour votre aide et d�sol� pour ce long message !

  2. #2
    Membre chevronn� Avatar de Aa�����Aa�����Aa����
    Homme Profil pro
    db@
    Inscrit en
    Septembre 2021
    Messages
    551
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 551
    Par d�faut
    Mauvaise syntaxe, pas de VALUES pour un select apr�s, le message est plut�t clair : Syntaxe incorrecte vers le mot cl� 'select'.
    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
    INSERT INTO [TI20].[_SMDBA_].[_TELDETAI_]
     ([SEQUENCE]
               ,[LASTMODIFIED]
               ,[LASTUSER]
               ,[_GROUP_]
               ,[NOTE]
               ,[PROBLEM #]
               ,[PDATE]
               ,[PERSON]
               ,[TIME SPENT]
               ,[ACTION]
               ,[COMMANDLINE]
               ,[_INACTIVE_:]
               ,[LINK_MSCRM_ACTIVITYID]
               ,[FROM_GROUP:]
               ,[TO_GROUP:]
               ,[SESSIONID]
               ,[EMAILTOEMAILFROM]
               ,[SEQ_EMAILMGMT]
               ,[NOTETYPE]
               ,[ISPRIVATE]
               ,[REQUESTOR#]
               ,[CHARGE]
               ,[TI11_NoteID])
    select * from [_SMDBA_].[_TELDETAI_] as TI23
    left join [TI20].[_SMDBA_].[_TELDETAI_] as TI20 
    on TI23.sequence = TI20.SEQUENCE
    where TI20.SEQUENCE is null
    En esp�rant qu'il y a autant de colonnes dans le insert que le select.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Par d�faut
    Hey hey, merci

    Mais tu as raison, il me double les colonnes du coup dans le select.

    La premi�re partie du select me sort les champs renseign�s de ti_23. Suivie imm�diatement des m�mes champs mais null

    J'ai corrig� en mettant TI23.* dans le select.

    �a m'a l'air bien, merci beaucoup !!

  4. #4
    Membre chevronn� Avatar de Aa�����Aa�����Aa����
    Homme Profil pro
    db@
    Inscrit en
    Septembre 2021
    Messages
    551
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activit� : db@

    Informations forums :
    Inscription : Septembre 2021
    Messages : 551
    Par d�faut
    Citation Envoy� par mogway95 Voir le message
    J'ai corrig� en mettant TI23.* dans le select.
    C'est toujours une mauvaise pratique d'utiliser select *, il faut faire l'effort de mettre explicitement le nom des colonnes, �a �vite bien des probl�mes ensuite !
    Entre les colonnes qui ne sont pas dans le bonne ordre et les colonnes qui sont ajout�...

  5. #5
    Mod�rateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 600
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activit� : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 600
    Billets dans le blog
    10
    Par d�faut
    � propos du SELECT * , voir mon article de blog ICI .

    Et il ne faut pas confondre les champs qui sont les attributs d'un formulaire de saisie ou d'un �tat et les colonnes qui sont les attributs d'une table ou d'une vue.

  6. #6
    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
    Citation Envoy� par mogway95 Voir le message
    Bonsoir tout le monde,

    Cela faisait tr�����s longtemps que je n'avais post� ici

    Jusque l�, je trouvais toujours plus ou moins comment me d�brouiller.

    Si je prends la plume ce soir, c'est pour qu�rir votre aide donc !

    Le pitch :

    Je poss�de une base sous Microsoft sql server (qui sert pour le gestionnaire de ticket de la boite). Sur cette base, pour des raisons de licence, j'ai d� supprimer des donn�es... je sais....
    Nous avions atteint les 10 Go de SQL Express, le service devait tourner le weekend absolument.
    Vous auriez pu faire de la compression... Cela aurait r�solu temporairement votre probl�matique au lieu de d�truire l'information sans r�fl�chir.... ALTER TABLE/INDEX ... REBUIL WITH (DATA_COMPRESSION = PAGE)

    J'ai tout de m�me effectu� une sauvegarde compl�te.

    Sauvegarde restaur�e sur une nouvelle base du m�me serveur.

    J'arrive retrouver les donn�es de la base restaur�e et qui sont manquantes sur la base de production.

    J'utilise cette requ�te (si jamais vous voyez quelque chose de faux^^)

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    select * from [_SMDBA_].[_TELDETAI_] as TI23
    left join [TI20].[_SMDBA_].[_TELDETAI_] as TI20 
    on TI23.sequence = TI20.SEQUENCE
    where TI20.SEQUENCE is null
    Je retrouve avec 1412 enregistrements.

    Maintenant je souhaiterais les ins�rer dans la m�me table mais de la base de production :

    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
     
    begin tran
    INSERT INTO [TI20].[_SMDBA_].[_TELDETAI_]
     ([SEQUENCE]
               ,[LASTMODIFIED]
               ,[LASTUSER]
               ,[_GROUP_]
               ,[NOTE]
               ,[PROBLEM #]
               ,[PDATE]
               ,[PERSON]
               ,[TIME SPENT]
               ,[ACTION]
               ,[COMMANDLINE]
               ,[_INACTIVE_:]
               ,[LINK_MSCRM_ACTIVITYID]
               ,[FROM_GROUP:]
               ,[TO_GROUP:]
               ,[SESSIONID]
               ,[EMAILTOEMAILFROM]
               ,[SEQ_EMAILMGMT]
               ,[NOTETYPE]
               ,[ISPRIVATE]
               ,[REQUESTOR#]
               ,[CHARGE]
               ,[TI11_NoteID])
         VALUES
    (select * from [_SMDBA_].[_TELDETAI_] as TI23
    left join [TI20].[_SMDBA_].[_TELDETAI_] as TI20 
    on TI23.sequence = TI20.SEQUENCE
    where TI20.SEQUENCE is null)

    Et l�... bah �a marche pas. Et le message d'erreur n'est pas des plus clair malheureusement
    Quel est ce message d'erreur. En g�n�ral ils sont tr�s claire.... Mais votre manque de connaissance vous les rend sans doute incompr�hensible !



    Est-ce que par le plus grand des hasards, vous auriez une id�e ?

    TI20 �tant la base de production avec les donn�es manquantes.

    Ti_2023 �tant la base restaur�e compl�te.

    Comme j'ai plusieurs tables � faire, si celle-ci passe, les autres passeront

    Merci par avance pour votre aide et d�sol� pour ce long message !
    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/ * * * * *

  7. #7
    Membre averti
    Homme Profil pro
    Administrateur de base de donn�es
    Inscrit en
    Juin 2015
    Messages
    21
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 46
    Localisation : Alg�rie

    Informations professionnelles :
    Activit� : Administrateur de base de donn�es

    Informations forums :
    Inscription : Juin 2015
    Messages : 21
    Par d�faut insert depuis une autre base de donn�e sur la m�me instance
    INSERT INTO table1 (champ1,champ2,champ3) SELECT champ1,champ2,champ3 FROM [base2]..table2;

Discussions similaires

  1. Trigger avec Insertion � partir d'une autre table
    Par ALexSql dans le forum D�veloppement
    R�ponses: 1
    Dernier message: 15/03/2012, 22h41
  2. insert a partir d une autre table
    Par jpapa dans le forum Acc�s aux donn�es
    R�ponses: 3
    Dernier message: 28/12/2009, 23h49
  3. requete insert a partir d'une autre table
    Par c+cool dans le forum Langage SQL
    R�ponses: 1
    Dernier message: 04/07/2008, 09h46
  4. Insert � partir d'une autre requ�te
    Par DjyDjy dans le forum Requ�tes et SQL.
    R�ponses: 3
    Dernier message: 06/03/2007, 20h48
  5. R�ponses: 1
    Dernier message: 23/01/2007, 15h57

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