2013-03-12 7 views
1

Мой клиент хочет изменить серверы из приложения, я имею в виду ввести новое имя SQL-серверов из ключевых слов приложения и поиска в таблицах базы данных SQL Server. У меня есть Stored Producer, который отлично работает для одного SQL-сервера.Динамическая хранимая процедура на разных SQL-серверах?

Если клиент меняет имя SQL-сервера на уровне приложения, то строка подключения в приложении не будет работать. Поскольку база данных в используемой строке подключения доступна для одного сервера.

Как я могу справиться с этой ситуацией? , Есть ли в любом случае sp, который будет динамичным? P

+0

Не разрешать им изменять сервер? Почему ты бы так поступил? Я полагаю, вы можете создать зеркало для базы данных. – swasheck

+0

Клиент хочет искать ключевые слова на разных серверах. – James123

+0

Ничего себе. Затем вам нужно, чтобы ваше приложение узнало, какой сервер должен проверять, и динамически изменяйте свойства 'SqlConnection' на основе того, какой сервер выбирает клиент. Вы можете хранить оба сервера в качестве строк подключения в вашем файле конфигурации и ссылаться на соответствующий код при создании соединения. –

ответ

1

Ну, на одном сервере вы можете создать synonym, который указывает на другой сервер. Предполагая, что вы связаны серверы, на Server1:

CREATE SYNONYM dbo.ProcedureName FOR Server2_Linked.DatabaseName.dbo.ProcedureName; 

Теперь, когда приложение вызывает dbo.ProcedureName в Server1, неведомый ему, он фактически выполняется на Server2.

Если это не то, что вам нужно, я думаю, вам придется подробно рассказать о своем вопросе.

+0

Myservers не могут связывать друг друга. Я имею в виду, что не определен. Мне нужно проверить, что SP существует на моем сервере, если не создать новую базу данных и выполнить ее. – James123

+1

Что будет генерировать код для этой хранимой процедуры? Вы хотите, чтобы ваше приложение пыталось выполнить хранимую процедуру на одном сервере, но если он ее не найдет, возьмите определение хранимой процедуры с другого сервера и создайте его, а затем выполните его? Это не похоже на то, что ваше приложение * должно делать. Если вам нужна хранимая процедура в обоих местах, * вы должны сделать это сейчас. –

+0

Например, вы можете сделать резервную копию своей базы данных, восстановить ее на новом сервере, обновить строку подключения, вытереть руки и пожелать им удачи. –

Смежные вопросы