changer tous les synonymes d'une autre base de données
J'ai de la production de la base de données (par exemple, PROD1
). Il a beaucoup de synonymes pour une autre base de données (par exemple, PROD2
).
J'ai créé PROD2_TEST
(comme pleinement copie de PROD2
) et aussi PROD1_TEST
(comme la copie intégrale de PROD1
). Mais comme j'ai PROD1_TEST
synonymes de PROD2
, au lieu de PROD2_TEST
.
Comment puis-je automatiquement recréer tous les synonymes de la base de données de test?
Vous devez vous connecter pour publier un commentaire.
Basé sur @artm suggestion, j'élargis un peu pour inclure des paramètres pour le rendre plus générique. Voici le code
J'ai dû le faire pour les mêmes raisons, et c'est la requête que j'ai utilisé. Exécutez la requête, copiez-collez les résultats sur le nouveau serveur (PROD_Test) et exécutez le produit des requêtes. Il gère les différents noms de schéma et de multiples bases de données dans le cas où vous avez recours:
Il n'est pas possible de modifier un synonyme, vous aurez à supprimer et créer entre eux. L'article suivant contient un script pour créer des synonymes pour une gamme de tables. J'espère que vous pouvez modifier en fonction de vos besoins:
Utilisez des synonymes à l'abstrait des objets SQL Server
Vous pouvez consulter toutes les synonymes à l'aide de la
sys.synonyms
vue. En pseudocode ce que vous voulez faire est:name
etbase_object_name
PROD2
àPROD2_TEST
Voici quelque chose que j'ai utilisé pour reconfigurer tous les synonymes d'une nouvelle base de données sur le même serveur (basé sur Tobsey la suggestion)