Bonjour,
Je cherche à importer les procédures stockées d'une base A dans la base B avec l'utilitaire BCP ...?
Merci de votre aide.
@+
Version imprimable
Bonjour,
Je cherche à importer les procédures stockées d'une base A dans la base B avec l'utilitaire BCP ...?
Merci de votre aide.
@+
faite le en mode natif.
A +
S'il s'agit d'exporter les DDL des procédures stockées (?), à ma connaissance le bcp, en mode natif ou pas, ne permet pas d'exporter les DDL des procédure stockées !
Le bcp permet d'exporter et d'importer des données entre instances de base de données.
Pour exporter les DDL des procédures stockées, une solution consiste à utiliser, sous SSMS, l'assistant "Générer des scripts" comme suit :
Sous SSMS dans l'explorateur d'objet :
1 - Sélectionnez la base de données source
2 - Faites un clic droit sur la souris puis
"Tâches" > "Générer des scripts..."
3 - Cliquez sur Suivant
4 - Sélectionnez le radio bouton "Sélectionner des objets de base de données spécifiques" puis Cochez la case "Procédures stockées"
5 - Cliquez sur "Suivant" (vous avez la possibilité de générer le script dans un fichier texte (.sql) au format ANSI ou unicode vous avez le choix.
Si vous voulez automatiser cette opération, Il faudra utiliser la vue système sys.sql_modules, colonne defintion, (ou bien, selon la norme SQL, la vue catalogue INFORMATION_SCHEMA.ROUTINES, colonne ROUTINE_DEFINITION (1)), de la base source et recourir au sql dynamique pour rejouer le script des DDL des dites procédures sur la base de destination.
(1) : La colonne ROUTINE_DEFINITION de la vue INFORMATION_SCHEMA.ROUTINES retourne uniquement les 4 000 premiers premiers caractères du texte de définition de la fonction ou de la procédure stockée. Donc si vous avez des procédures ou fonctions dont le texte contient plus de 4000 caractères, utiliser plutôt la vue système sys.sql_modules et la colonne definition de type nvarchar(max).
A+
J'avais pas vu que c'était pur les routines....
Le plus simple est d'utiliser du SQL dynamique et lancer un "execute" à partir de la définition SQL de la routine dans une des vues pour ce faire (INFORMATION_SCHEMA.ROUTINES ou sys.sql_modules).
A +