2013-07-03 2 views
4

Existe-t-il un moyen de créer une base de données avec SQL Server 2012 et de pouvoir la transmettre à SQL Server 2008?Créer une base de données SQL Server 2012 compatible pour 2008

+0

Il suffit d'utiliser les nouvelles valeurs pour la réponse acceptée pour cette question: http://stackoverflow.com/questions/7535/sql-server-2008-compatibility-with-sql-server-2005?rq=1 –

+0

Vous pouvez utilise le niveau de Compatibilité 2008 (sous les propriétés de la base de données, onglet Options). – Mansfield

+0

wow, ty. besoin de tester, mais merci pour l'indice –

Répondre

10

Je viens de transférer une base de données de 2012 à 2008 R2. (Cela nécessite à la fois d'être en ligne et de configurer la nouvelle base de données avec l'autorisation d'y accéder. Je l'ai fait dans un environnement de bureau où la base de données 2012 était utilisée pour créer une application C# mais la base de données était pour 2008, vous pouvez le faire localement je suppose, puis sauvegarder les données de 2008 dans un fichier .bak une fois que vous avez fait ci-dessous, mais je n'ai pas testé)

J'ai exporté la structure des tables en tant que SQL par ;

-> Right clicking the database 
-> Tasks 
-> Generate scripts 
-> Choose Objects (Script entire database and all database objects) 
-> Save to New Query Window (Click Advanced and under "Script for server version" choose your version) 
-> Click Next and Next and it should generate SQL to new window. 
-> I removed everything above "GO, ALTER DATABASE" 
-> Create the new database on the 2008 Server using the same name and run the above SQL to make the tables. 

Pour faire les données de table:

-> In the 2012 database right click the database and click tasks 
-> Export data 
-> Choose the source 
-> Next 
-> Choose the destination 
-> Copy data from one or more tables 
-> Next 
-> Select the tables 
-> Next 
-> Run Immediately 

Espérons que cela fonctionne/aide quelqu'un d'autre comme il m'a fallu un certain temps pour comprendre.

14

Comme dans la sauvegarde de votre base de données 2012 et le restaurer à 2008?

NON, VOUS NE POUVEZ PAS FAIRE QUE

Il n'y a aucun moyen, aucune méthode, pas de truc, pas de hack, aucune solution - il ne peut tout simplement pas être fait.

Vous devez utiliser des scripts .sql pour la structure et les données afin de passer d'une version plus récente de SQL Server à une version plus ancienne. Les fichiers de sauvegarde SQL Server (*.bak) et les fichiers de base de données réels (*.mdf, *.ndf) n'ont jamais été rétrocompatibles.

Et pour démystifier un mythe: le réglage de la compatibilité niveau ne limite les fonctionnalités disponibles (comme types de données, etc.) - mais il NE PAS faire la sauvegarde ou des fichiers de données *.mdf*.bak compatibles avec une version plus ancienne.

+0

Juste par curiosité, si vous essayez de faire cela, le serveur SQL ne vous laissera pas? Ou cela va-t-il causer des problèmes sur toute la ligne? – Mansfield

+0

@Mansfield: vous ne pouvez pas le faire - vous ** ne pouvez pas ** restaurer un fichier '.bak' 2012 (il va avorter avec un message d'erreur) - et vous ** ne pouvez pas ** joindre un' '.mdf' 2012 à un L'instance SQL Server 2008, soit encore une fois: vous obtiendrez une erreur. –

-3

en fait il est, vous pouvez définir le niveau de compatibilité de votre base de données à 100.

En savoir plus sur ce qui peut être trouvé à ce lien http://msdn.microsoft.com/en-us/library/bb510680.aspx

+0

Non - cela ne fonctionne PAS **. Cela ne fait que limiter les fonctionnalités - mais cela ne *** *** PAS rendre les fichiers compatibles. –

2

En principe, non. Vous pouvez donner le modèle de compatibilité 100 (SQL 2008/2008R2), mais vous ne pourrez pas (sauvegarde/restauration) ni (Détacher/Attacher) à partir de 2012 dans un serveur SQL2008.

Si vous avez seulement besoin de déplacer un schéma, la seule solution de contournement que je connaisse est de générer le schéma, puis de créer la base de données dans SQL2008. si vous avez besoin de déplacer les données, il faudra beaucoup plus de travail, et vous pouvez essayer quelques outils comme SSMS tools | Generate Insert Statements

Questions connexes