Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Modification automatique de proc stoc

4 réponses
Avatar
David
Bonjour,

nous avons plusieurs environnements (dev/test/prod)pour=20
g=E9rer notre syst=E8me d'informations et les bases de donn=E9es=20
n'ont pas toujours le m=EAme nom d'un serveur =E0 l'autre=20
(parce que on peut avoir plusieurs versions d'une base sur=20
un serveur, c'est pas pour le plaisir non plus :-)

Il y a 2 bases de donn=E9es pour 1 environnement.

Cela pose probl=E8me pour le transfert d'un serveur =E0=20
l'autre des proc=E9dures stock=E9es qui utilisent les 2 bases.

Par exemple on a un serveur 'dev' avec :
des bases=20
devbd1
devbd2
et par exemple une proc stoc de devbd1 contenant :=20
select ......
from table1 inner join devbd2..table2 on ......

=E9videment quand on transfert =E7a sur un serveur 'tst' qui a=20
des bases :
tstbd1
tstbd2
la requ=EAte ne fonctionne plus puisque la base bd2 n'a pas=20
le m=EAme nom...

QUESTION : qq un a-t-il un truc, un script ou juste une=20
id=E9e pour modifier automatiquement une s=E9rie de proc stoc=20
en rempla=E7ant une cha=EEne par une autre ?
Copier/coller du code dans SQAnalyser +=20
rechercher/remplacer =E0 la main n'est pas la bonne=20
r=E9ponse ... mais finalement c'est ce que je veux faire en=20
automatique ;-)

Merci de vos lumi=E8res !

David

4 réponses

Avatar
Sylvain Lafontaine
Si vos bases de données sont si intimement reliées, j'ai de la difficulté à
comprendre pourquoi vous vous obstiner à les diviser en deux.

Deux suggestions:

1- Créer des instances différentes de SQL-Server pour vos environnements
dev/test/prod. Cela va vous permettre des environnements différents sur la
même machine tout en conservant les mêmes noms de bdd.

2- Utilisez des serveurs liées comme alias pour vos bdds.

Pour ce qui est de la modification automatique du code, vous aller sûrement
trouver des examples dans les livres avancés de SQL-Server, utilisant soit
la manipulation directe des tables systèmes, soit les SCHEMAs, soit SQLDMO
ou bien soit SQLNS.

Je vous laisse le soin de trouver.

S. L.

"David" wrote in message
news:3ed801c49ff4$471176e0$
Bonjour,

nous avons plusieurs environnements (dev/test/prod)pour
gérer notre système d'informations et les bases de données
n'ont pas toujours le même nom d'un serveur à l'autre
(parce que on peut avoir plusieurs versions d'une base sur
un serveur, c'est pas pour le plaisir non plus :-)

Il y a 2 bases de données pour 1 environnement.

Cela pose problème pour le transfert d'un serveur à
l'autre des procédures stockées qui utilisent les 2 bases.

Par exemple on a un serveur 'dev' avec :
des bases
devbd1
devbd2
et par exemple une proc stoc de devbd1 contenant :
select ......
from table1 inner join devbd2..table2 on ......

évidement quand on transfert ça sur un serveur 'tst' qui a
des bases :
tstbd1
tstbd2
la requête ne fonctionne plus puisque la base bd2 n'a pas
le même nom...

QUESTION : qq un a-t-il un truc, un script ou juste une
idée pour modifier automatiquement une série de proc stoc
en remplaçant une chaîne par une autre ?
Copier/coller du code dans SQAnalyser +
rechercher/remplacer à la main n'est pas la bonne
réponse ... mais finalement c'est ce que je veux faire en
automatique ;-)

Merci de vos lumières !

David
Avatar
David
elles sont divisées car la 1ère est celle d'un erp et la
seconde est pour nos développements propriétaires.
On ne peut malheureusement pas mettre tous nos
développements dans la base de l'ERP, comme cela peut se
comprendre... en revanche on a évidemment besoin d'accéder
aux données de l'erp...

Je vais voir ce que je peux faire avec les tables et
fonctions systèmes et éventuellement jeté un oeil à
SQLDMO...

merci pour ces conseils

David

-----Message d'origine-----
Si vos bases de données sont si intimement reliées, j'ai


de la difficulté à
comprendre pourquoi vous vous obstiner à les diviser en


deux.

Deux suggestions:

1- Créer des instances différentes de SQL-Server pour


vos environnements
dev/test/prod. Cela va vous permettre des environnements


différents sur la
même machine tout en conservant les mêmes noms de bdd.

2- Utilisez des serveurs liées comme alias pour vos


bdds.

Pour ce qui est de la modification automatique du code,


vous aller sûrement
trouver des examples dans les livres avancés de SQL-


Server, utilisant soit
la manipulation directe des tables systèmes, soit les


SCHEMAs, soit SQLDMO
ou bien soit SQLNS.

Je vous laisse le soin de trouver.

S. L.

"David" wrote in


message
news:3ed801c49ff4$471176e0$
Bonjour,

nous avons plusieurs environnements (dev/test/prod)pour
gérer notre système d'informations et les bases de données
n'ont pas toujours le même nom d'un serveur à l'autre
(parce que on peut avoir plusieurs versions d'une base sur
un serveur, c'est pas pour le plaisir non plus :-)

Il y a 2 bases de données pour 1 environnement.

Cela pose problème pour le transfert d'un serveur à
l'autre des procédures stockées qui utilisent les 2 bases.

Par exemple on a un serveur 'dev' avec :
des bases
devbd1
devbd2
et par exemple une proc stoc de devbd1 contenant :
select ......
from table1 inner join devbd2..table2 on ......

évidement quand on transfert ça sur un serveur 'tst' qui a
des bases :
tstbd1
tstbd2
la requête ne fonctionne plus puisque la base bd2 n'a pas
le même nom...

QUESTION : qq un a-t-il un truc, un script ou juste une
idée pour modifier automatiquement une série de proc stoc
en remplaçant une chaîne par une autre ?
Copier/coller du code dans SQAnalyser +
rechercher/remplacer à la main n'est pas la bonne
réponse ... mais finalement c'est ce que je veux faire en
automatique ;-)

Merci de vos lumières !

David


.



Avatar
Jean-Nicolas BERGER
J'ai eu un besoin similaire par le passé, et je l'ai résolu en passant par
des vues.
il faut définir sur chaque base des vues pointant (select * from ...) vers
les tables utiles de l'autre base.
une fois ces vues en place, les proc stock doivent utiliser les vues (SQL
Server saura retrouver les indexes nécessaires sur les tables).
A noter qu'en cas de changement de structure de table, il faudra sur l'autre
base recompiler la vue associée.
Il n'y a plus d'à se créer un jeu de vues pour les bases de dev, un jeu pour
les bases de prod, ...
JN.


"David" a écrit dans le message de
news: 3ed801c49ff4$471176e0$
Bonjour,

nous avons plusieurs environnements (dev/test/prod)pour
gérer notre système d'informations et les bases de données
n'ont pas toujours le même nom d'un serveur à l'autre
(parce que on peut avoir plusieurs versions d'une base sur
un serveur, c'est pas pour le plaisir non plus :-)

Il y a 2 bases de données pour 1 environnement.

Cela pose problème pour le transfert d'un serveur à
l'autre des procédures stockées qui utilisent les 2 bases.

Par exemple on a un serveur 'dev' avec :
des bases
devbd1
devbd2
et par exemple une proc stoc de devbd1 contenant :
select ......
from table1 inner join devbd2..table2 on ......

évidement quand on transfert ça sur un serveur 'tst' qui a
des bases :
tstbd1
tstbd2
la requête ne fonctionne plus puisque la base bd2 n'a pas
le même nom...

QUESTION : qq un a-t-il un truc, un script ou juste une
idée pour modifier automatiquement une série de proc stoc
en remplaçant une chaîne par une autre ?
Copier/coller du code dans SQAnalyser +
rechercher/remplacer à la main n'est pas la bonne
réponse ... mais finalement c'est ce que je veux faire en
automatique ;-)

Merci de vos lumières !

David
Avatar
David
en voilà une idée quelle est bien bonne !
Je vais voir ce que je peux faire avec ça

Merci bcp !

David

-----Message d'origine-----
J'ai eu un besoin similaire par le passé, et je l'ai


résolu en passant par
des vues.
il faut définir sur chaque base des vues pointant (select


* from ...) vers
les tables utiles de l'autre base.
une fois ces vues en place, les proc stock doivent


utiliser les vues (SQL
Server saura retrouver les indexes nécessaires sur les


tables).
A noter qu'en cas de changement de structure de table, il


faudra sur l'autre
base recompiler la vue associée.
Il n'y a plus d'à se créer un jeu de vues pour les bases


de dev, un jeu pour
les bases de prod, ...
JN.


"David" a écrit


dans le message de
news: 3ed801c49ff4$471176e0$
Bonjour,

nous avons plusieurs environnements (dev/test/prod)pour
gérer notre système d'informations et les bases de données
n'ont pas toujours le même nom d'un serveur à l'autre
(parce que on peut avoir plusieurs versions d'une base sur
un serveur, c'est pas pour le plaisir non plus :-)

Il y a 2 bases de données pour 1 environnement.

Cela pose problème pour le transfert d'un serveur à
l'autre des procédures stockées qui utilisent les 2 bases.

Par exemple on a un serveur 'dev' avec :
des bases
devbd1
devbd2
et par exemple une proc stoc de devbd1 contenant :
select ......
from table1 inner join devbd2..table2 on ......

évidement quand on transfert ça sur un serveur 'tst' qui a
des bases :
tstbd1
tstbd2
la requête ne fonctionne plus puisque la base bd2 n'a pas
le même nom...

QUESTION : qq un a-t-il un truc, un script ou juste une
idée pour modifier automatiquement une série de proc stoc
en remplaçant une chaîne par une autre ?
Copier/coller du code dans SQAnalyser +
rechercher/remplacer à la main n'est pas la bonne
réponse ... mais finalement c'est ce que je veux faire en
automatique ;-)

Merci de vos lumières !

David


.