Accueil > > > DUMP LOAD D'UNE BASE DE DONNÉES
DUMP LOAD D'UNE BASE DE DONNÉES
Information sur la source
Description
dans le cas du passage de SQL 7 à SQL 2000 j'ai été confronté à un probleme. Le classement entre ces 2 moteurs avaient changé. plusieurs options sont donc possible : 1 - installé SQL 2000 avec le meme classement que sql 7 2 - transférer les données d'une base sql 7 vers sql 2000 j'ai choisi cette seconde option et comme mes clients n'ont pas tous l'outil d'import et d'export de sql, j'ai écrit ce petit script.
Source
- -- Script de Dump et de load des données d'une base vers une autre
- -- Note :
- -- Les 2 bases doivent avoir la meme structure
- -- si il existe des données dans la base de destination, elles seront supprimées
- -- Les 2 bases doivent être installées sur le même moteur
- -- le transfert des données passant par un dossier disque, ne pas oublier de le créer avant
- -- il est conseillé de désactiver les contraintes d'intégrité avant de lancer le traitement
- --
- Set NOCOUNT ON
- go
- Declare @BaseSource VarChar(50)
- Declare @BaseDest VarChar(50)
- Declare @TableName VarChar(50)
- Declare @CmdExport VarChar(2000)
- Declare @CmdImport VarChar(2000)
- Declare @Requete VarChar(5000)
- Set @BaseSource = 'NombaseSource'
- Set @BaseDest = 'Nombasedest'
- Exec master..Xp_CmdShell 'Del C:\Dump\*.Txt', NO_OUTPUT
- Exec master..Xp_CmdShell 'Del C:\Dump\Log\*.Log', NO_OUTPUT
-
- Declare Cur_Table Cursor For
- Select name from sysobjects where type='U'
- And (name like 'T\_%' escape '\' Or name like 'W\_%' escape '\' Or name like 'X\_%' escape '\')
- Order by Name
-
- Open Cur_Table
- Fetch Next From Cur_Table Into @TableName
- While @@Fetch_Status = 0
- Begin
- Print ''
- Print '----------> ' + Upper(@TableName) + ' <----------'
-
- Print 'Export dans C:\Dump\' + @TableName + '.txt à partir de ' + @BaseSource + '.Dbo.' + @TableName
- Set @CmdExport = 'BCP "' + @BaseSource + '.Dbo.' + @TableName + '" Out "c:\Dump\' + @TableName + '.txt" -n -V 70 -U sa -P bigboss -E -e C:\Dump\Log\' + @TableName + '_Exp.log -a 65535 -m 10000 -R'
- --Print @CmdExport
- Exec master..Xp_CmdShell @CmdExport, NO_OUTPUT
- --
- Print 'Vidage de la table ' + @BaseDest + '.Dbo.' + @TableName + ' avant import'
- Set @Requete = 'Delete ' + @BaseDest + '.Dbo.' + @TableName
- Exec (@Requete)
- --
- Print 'Import dans ' + @BaseDest + '.Dbo.' + @TableName + ' à partir de C:\Dump\' + @TableName + '.txt'
- Set @CmdImport = 'BCP "' + @BaseDest + '.Dbo.' + @TableName + '" In "c:\Dump\' + @TableName + '.txt" -n -V 70 -U sa -P bigboss -E -e C:\Dump\Log\' + @TableName + '_Imp.log -a 65535 -m 10000 -R'
- Print @CmdImport
- Exec master..Xp_CmdShell @CmdImport, NO_OUTPUT
-
- Fetch Next From Cur_Table Into @TableName
- End
- Close Cur_Table
-
- Print ''
- Print ''
- Print '----------> Contrôle du nombre d''enregistrements transférés <----------'
- Open Cur_Table
- Fetch Next From Cur_Table Into @TableName
- While @@Fetch_Status = 0
- Begin
- Print 'Contrôle de la table : ' + @TableName
- Set @Requete = 'Declare @NbLgBaseSource Int
- If Exists(Select Name From ' + @BaseSource + '.Dbo.SysObjects Where Name = ''' + @TableName + ''')
- Begin
- Select @NbLgBaseSource = Count(*) From ' + @BaseSource + '.Dbo.' + @TableName + '
- End
- Else
- Begin
- Set @NbLgBaseSource = 0
- End
- Declare @NbLgBaseDest Int
- If Exists(Select Name From ' + @BaseDest + '.Dbo.SysObjects Where Name = ''' + @TableName + ''')
- Begin
- Select @NbLgBaseDest = Count(*) From ' + @BaseDest + '.Dbo.' + @TableName + '
- End
- Else
- Begin
- Set @NbLgBaseDest = 0
- End
- If @NbLgBaseSource <> @NbLgBaseDest
- Begin
- Print ''ERREUR --- Nombre de ligne différent entre ' + @BaseSource + '.Dbo.' + @TableName + ''' + ''('' + Cast(@NbLgBaseSource as VarChar) +
- '') et ' + @BaseDest + '.Dbo.' + @TableName + ''' + ''('' + Cast(@NbLgBaseDest as VarChar) + '')''
- End'
- --print @requete
- Exec (@Requete)
- Fetch Next From Cur_Table Into @TableName
- End
- Close Cur_Table
- Deallocate Cur_Table
- Print 'Traitement terminé !'
-
- Set NOCOUNT OFF
-- Script de Dump et de load des données d'une base vers une autre
-- Note :
-- Les 2 bases doivent avoir la meme structure
-- si il existe des données dans la base de destination, elles seront supprimées
-- Les 2 bases doivent être installées sur le même moteur
-- le transfert des données passant par un dossier disque, ne pas oublier de le créer avant
-- il est conseillé de désactiver les contraintes d'intégrité avant de lancer le traitement
--
Set NOCOUNT ON
go
Declare @BaseSource VarChar(50)
Declare @BaseDest VarChar(50)
Declare @TableName VarChar(50)
Declare @CmdExport VarChar(2000)
Declare @CmdImport VarChar(2000)
Declare @Requete VarChar(5000)
Set @BaseSource = 'NombaseSource'
Set @BaseDest = 'Nombasedest'
Exec master..Xp_CmdShell 'Del C:\Dump\*.Txt', NO_OUTPUT
Exec master..Xp_CmdShell 'Del C:\Dump\Log\*.Log', NO_OUTPUT
Declare Cur_Table Cursor For
Select name from sysobjects where type='U'
And (name like 'T\_%' escape '\' Or name like 'W\_%' escape '\' Or name like 'X\_%' escape '\')
Order by Name
Open Cur_Table
Fetch Next From Cur_Table Into @TableName
While @@Fetch_Status = 0
Begin
Print ''
Print '----------> ' + Upper(@TableName) + ' <----------'
Print 'Export dans C:\Dump\' + @TableName + '.txt à partir de ' + @BaseSource + '.Dbo.' + @TableName
Set @CmdExport = 'BCP "' + @BaseSource + '.Dbo.' + @TableName + '" Out "c:\Dump\' + @TableName + '.txt" -n -V 70 -U sa -P bigboss -E -e C:\Dump\Log\' + @TableName + '_Exp.log -a 65535 -m 10000 -R'
--Print @CmdExport
Exec master..Xp_CmdShell @CmdExport, NO_OUTPUT
--
Print 'Vidage de la table ' + @BaseDest + '.Dbo.' + @TableName + ' avant import'
Set @Requete = 'Delete ' + @BaseDest + '.Dbo.' + @TableName
Exec (@Requete)
--
Print 'Import dans ' + @BaseDest + '.Dbo.' + @TableName + ' à partir de C:\Dump\' + @TableName + '.txt'
Set @CmdImport = 'BCP "' + @BaseDest + '.Dbo.' + @TableName + '" In "c:\Dump\' + @TableName + '.txt" -n -V 70 -U sa -P bigboss -E -e C:\Dump\Log\' + @TableName + '_Imp.log -a 65535 -m 10000 -R'
Print @CmdImport
Exec master..Xp_CmdShell @CmdImport, NO_OUTPUT
Fetch Next From Cur_Table Into @TableName
End
Close Cur_Table
Print ''
Print ''
Print '----------> Contrôle du nombre d''enregistrements transférés <----------'
Open Cur_Table
Fetch Next From Cur_Table Into @TableName
While @@Fetch_Status = 0
Begin
Print 'Contrôle de la table : ' + @TableName
Set @Requete = 'Declare @NbLgBaseSource Int
If Exists(Select Name From ' + @BaseSource + '.Dbo.SysObjects Where Name = ''' + @TableName + ''')
Begin
Select @NbLgBaseSource = Count(*) From ' + @BaseSource + '.Dbo.' + @TableName + '
End
Else
Begin
Set @NbLgBaseSource = 0
End
Declare @NbLgBaseDest Int
If Exists(Select Name From ' + @BaseDest + '.Dbo.SysObjects Where Name = ''' + @TableName + ''')
Begin
Select @NbLgBaseDest = Count(*) From ' + @BaseDest + '.Dbo.' + @TableName + '
End
Else
Begin
Set @NbLgBaseDest = 0
End
If @NbLgBaseSource <> @NbLgBaseDest
Begin
Print ''ERREUR --- Nombre de ligne différent entre ' + @BaseSource + '.Dbo.' + @TableName + ''' + ''('' + Cast(@NbLgBaseSource as VarChar) +
'') et ' + @BaseDest + '.Dbo.' + @TableName + ''' + ''('' + Cast(@NbLgBaseDest as VarChar) + '')''
End'
--print @requete
Exec (@Requete)
Fetch Next From Cur_Table Into @TableName
End
Close Cur_Table
Deallocate Cur_Table
Print 'Traitement terminé !'
Set NOCOUNT OFF
Conclusion
cez n'est peut etre pas la meilleure solution mais en tout cas cela marche.
a vos claviers pour les critiques
Pat
Historique
- 14 novembre 2007 15:08:20 :
- Faute de frappe dans la description
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
migration Data [ par ehod3011 ]
Bonjour je cherche a automatiser une migration data d'une base X sqlServeur2000 vers une base Y SQLServeur 2000 quelque aurait une procedure afin
migration d'une base de données mdb vers sql de structure différentes [ par serialnumber2010 ]
Bonjour, Existe t'il un moyen de migration d'une base de données mdb ou d'autres types vers sql tout en sachant que la structure est différente. je
migration de base de donnée SQL Server vers Oarcle 9i [ par issam164 ]
Bonjour, Je recherche tout retour d'expérience, méthodes ,outils pour migration de serveur SQL Server vers Oracle V9iMe
sqlbase migration vers une sgbdr ???? [ par neonours33 ]
bonjour,j'ai un petit problème !!!!!!j'ai une base de données sous SQLbase 6.1 qui tourne sous NT4 ,enfi le super rêve ,mais ça tourne ...le serveur s
Migration de données d'un fichier plat vers une base de données SQL en utilisant SSIS [ par OmarEK ]
Bonjour,J'ai des données dans un fichier plat ".txt" que je voudrais migrer vers une table de base de données SQL en utilisant SSIS, en comparant les
A la recherche d'un programme low-cost pour la migration de données et l'ETL [ par Ncasty ]
Bonjour, je suis entrain de mettre en place une base de données pour mon entreprise. Nous sommes une PME en pleine expansion, commercialisant des livr
Migration SQL server 2000 vers 2008 [ par adam525 ]
Bonjour, j'ai procédé à une migration d'une base de données sous sql server 2000 vers un autre serveur et une autre base de données sql server 2008.
Problème de migration : transfert "figé" [ par enricococo40 ]
Bonjour à tous, je rencontre un problème lors de la migration d'une base de donnée SQL SERVER 2005 vers une base MySQL. J'utilise l'outil de migrati
Recherche base de données [ par Popofounet ]
Bonjour, Je ne sais pas si je suis au bon endroit pour poster ce message. J'aurai besoin de votre aide pour l'écriture d'une base de données. Je dois
MS SQLServer vers MySQL [ par matdev62 ]
Bonjour à tous, je découvre l'outil MySQL Migration ToolKit pour le transfert de base MSSQLSERVER vers MYSQL. Pour le transfert des tables et des donn
|
Derniers Blogs
CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT)CSS CONTENT STATE SELECTORS (PERSONNAL DRAFT) par FREMYCOMPANY
Bonjour à tous, Je viens de publier une proposition comprenant 5 pseudo-classes pour le CSS Working Group ayant trait à l'état de chargement d'un élément (ex: IMG,VIDEO,AUDIO,OBJECT pour l'HTML.). Si le c½ur vous en dit, vous pouvez retrouver cette p...
Cliquez pour lire la suite de l'article par FREMYCOMPANY MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ?MBA : POURQUOI FAIRE ET COMMENT LE CHOISIR ? par ROMELARD Fabrice
Formation initiale Durant la formation, le découpage classique est le suivant (je donnerai les équivalences Suisse lorsque je les connaîtrais) : Ecole primaire jusqu'au Collège : Formation générale permettant d'obtenir les méthodes...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice Y'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENTY'A DES ERREURS QUI PEUVENT RENDRE LE DéVELOPPEUR VIOLENT par Aleks
Quand on a ce genre d'erreur sans log :
Et bas on a juste envie de choper le gas de Microsoft qu'a développé ça et lui foutre des baffes de Coboye ! ...
Cliquez pour lire la suite de l'article par Aleks [HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL[HYPER-V 3] PRéSENTATION DES COMMANDLETS POWERSHELL par Pierrick CATRO-BROUILLET
Avec la sortie prochaine de la Beta Consumer Preview de Windows 8, j'avais envie de revenir sur une des fonctionnalités que j'attends le plus et que, en bon geek que je suis, j'utilise déjà : Hyper-V 3 ainsi son module PowerShell.
Il y a déjà pléthor...
Cliquez pour lire la suite de l'article par Pierrick CATRO-BROUILLET IIS7 - COMPRESSION GZIPIIS7 - COMPRESSION GZIP par cyril
La compression GZIP permet d'améliorer les performances de navigation en compressant ce qu'envoie le serveur à un client. Pour comprendre comment cela fonctionne, regardons ce qu'il se passe au niveau HTTP lorsqu'un client tente d'accéder à une ress...
Cliquez pour lire la suite de l'article par cyril
Logiciels
Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning Academy System (17.1.3.0)ACADEMY SYSTEM (17.1.3.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|