7
votes

Modification des noms de base de données et des requêtes de base de données croisées dans les procédures stockées

J'ai un certain nombre de bases de données connexes qui sont en version éd. L'instance de différentes versions peut fonctionner côte à côte, identifiée par leurs différentes versions, c'est-à-dire [NORHWINDV1.1] et [NORHWINDV1.2] peut être sur le même serveur, ainsi que [Southwindv1.1] et [Southwindv1.2].

Il existe un certain nombre de procédures stockées qui font des requêtes de base de données croisées, c'est-à-dire sur Northwindv1.1 et également des tables de requête dans SouthWindv1.1. Quelle est la meilleure façon de gérer la modification des noms de base de données avec le changement de numéro de version, de sorte que les procédures stockées interrogent la version correcte des bases de données?

Merci, magicandi.


0 commentaires

3 Réponses :


3
votes

Il n'y a que deux façons que je connaisse, et les deux un peu sucent. Le premier consiste à utiliser SQL dynamique, comme: xxx pré>

la seconde consiste à installer plusieurs instances si SQL Server sur une machine. Comme localhost \ v1.0 code>, localhost \ v1.1 code>, et ainsi de suite. Vous pouvez ensuite créer un serveur lié que vous interrogez comme suit: P>

select * from linkedserver.northwind.dbo.YourTable


1 commentaires

Merci Andomar, je n'avais pas envisagé d'installer plusieurs instances de SQL Server. +1.



6
votes

En supposant que le nombre de tables interrogées entre les bases de données soit gérable, vous pouvez créer des synonymes pour ces tableaux et utiliser le synonyme dans les procédures. Vous auriez alors juste juste besoin de changer les synonymes pour basculer entre les versions.

http://msdn.microsoft.com/en-us/library/ MS177544.aspx


0 commentaires

2
votes

Vous pouvez créer des vues dans chaque base de données pour les autres tables nécessaires. Le Proc stocké ferait référence aux points de vue et les points de vue indiqueraient à la "bonne" base de données.

Vous pouvez probablement créer une simple base de PROC stockée TSQL pour générer les points de vue quand ils doivent être basculés vers une nouvelle base de données.


0 commentaires