2010-02-12 11 views

Odpowiedz

3

nr I nie boję się.

Konieczne jest użycie dynamicznego sql w celu użycia zmiennej dla nazwy bazy danych lub kolumny.

+0

Tego właśnie oczekiwałem, dzięki. – Andrew

2

Tylko dla przechowywanych proca bez użycia połączonego serwera lub dynamicznego SQL

DECLARE @myProc varchar(200) 
SELECT @myProc = 'wibble.dbo.foobar' 

EXEC @myProc 
0

Jest jeszcze inny (niekoniecznie całkiem) alternatywa:

IF (@source_database = 'wibble') 
    USE wibble; 
ELSE IF (@source_database = 'wibble2') 
    USE wibble2; 
ELSE 
    RAISERROR(....) 

SELECT * FROM dbo.myTable 

Jeśli masz rzeczywistą liczbę baz danych, może to być męczącym. Ale mimo wszystko jest to opcja.

+0

Dzięki za sugestię. Nie włączyłem mojego pytania w kontekst rozwiązania, nad którym pracuję. Mam źródłową bazę danych i docelową bazę danych, więc instrukcja use działa dobrze, aby upewnić się, że źródłowa baza danych jest poprawna, ale muszę wtedy jawnie odwołać się do docelowej bazy danych w zapytaniu sql. – Andrew

Powiązane problemy