none
Retrograder base de données 2014 - 2012 RRS feed

  • Question

  • Bonjour,

    J'ai un soucis pour downgrader une base de données. Mon client est passé en SQL Server 2014 sans mon accord et du coup il a des soucis avec son appli. il faut donc que je repasse sa base de données en SQL Server 2012.

    ce que j'ai testé déjà :

    - Import/Export mais j'ai plein de messages d'erreur

    - SSIS mais je ne sais pas sans faire table par table et j'en ai beaucoup

    - basckup/restauration mais bien sure, chez Microsoft il n'est pas possible de restaurer une base de données sur une instance d'un niveau inférieur. 

    Là où j'en suis et ce que j'ai fait :

    - j'ai lié mes instances SQL 2014 et 2012

    - j'ai crée un base de données vide (sans enregistrements) dans l'instance 2012

    - j'ai tenté la requête suivante : 

    declare 
            @LinkedServerName varchar(200), 
            @SourceDatabaseName varchar(200)   
    set @LinkedServerName = 'pc-bureau\SQL2014' 
    set @SourceDatabaseName = 'MaBase' 
    select 'insert into ' + name + ' select * from ' + @LinkedServerName + '.' + @SourceDatabaseName + '..' + name 
    from sys.tables t 

    mais pour chaque Insert, il me met le message suivant : 

    Un schéma ou un catalogue non valide a été spécifié pour le fournisseur "SQLNCLI11" du serveur lié "pc-bureau\SQL2014".

    en cherchant sur le net, j'ai vu qu'il fallait décocher le "Lever Zero Only" dans les propriétés de SQLNCLI11 mais il était déjà décoché. 

    Je reste persuadé qu'il y a une solution pour récupérer les info de ma base en 2014 et les mettre dans ma base en 2012 mais je sèche...

    Par avance merci pour votre aide.


    MCITP EA Windows Server 2008 R2 MCSA Windows Server 2012 Apprenti développeur C# EF WPF


    mercredi 4 novembre 2015 17:22

Réponses

  • IL faut mettre le schéma dans la requête :

    [pc-bureau\SQL2014].Mabase..MATABLE 

    devient

    [pc-bureau\SQL2014].Mabase.LeSchemaDe.MATABLE Pour récupérer le schéma d'une table : 

    select sch.name AS sch, t.name AS Tbl
    from sys.tables t
    inner join sys.schemas sch
    	ON t.schema_id = sch.schema_id

    jeudi 5 novembre 2015 14:38

Toutes les réponses