2013-03-12 3 views
1

내 클라이언트가 응용 프로그램에서 서버를 변경하려고합니다. 응용 프로그램에서 새 SQL 서버 이름을 입력하고 SQL 서버 데이터베이스 테이블에서 키워드를 검색합니다. 한 SQL 서버에 대해 잘 작동하는 Stored Producer가 있습니다.다른 SQL 서버의 동적 저장 프로 시저?

클라이언트가 응용 프로그램 수준에서 SQL 서버 이름을 변경하면 응용 프로그램의 내 연결 문자열이 작동하지 않습니다. 내가 사용한 연결 문자열의 데이터베이스가 하나의 서버에서 사용 가능하기 때문입니다.

이 상황을 어떻게 처리 할 수 ​​있습니까? . 동적 인 어쨌든 sp가 있습니까? P

+0

서버를 변경할 수 없습니까? 왜 그걸 할거야? 데이터베이스에 대한 미러를 만들 수 있다고 가정합니다. – swasheck

+0

고객이 다른 서버에서 키워드를 검색하려고합니다. – James123

+0

와우. 그런 다음, 어떤 서버를 검사해야 하는지를 앱에 알려서 클라이언트가 선택하는 서버에 따라 동적으로 'SqlConnection' 속성을 변경해야합니다. 설정 파일에 두 개의 서버를 모두 연결 문자열로 저장하고 연결을 만들 때 해당 서버를 참조 할 수 있습니다. –

답변

1

한 서버에서 다른 서버를 가리키는 synonym을 만들 수 있습니다. 당신이 Server1에 서버를 연결 한 가정 :

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

응용 프로그램이 모르는 Server1에서 dbo.ProcedureName 호출 이제

는, 실제로 Server2을에 실행됩니다.

내가 뭘 하던지 아닌지 궁금한 점이 조금있다.

+0

Myservers는 서로 연결할 수 없습니다. 나는 정의되지 않은 것을 의미한다. 새 데이터베이스를 만들지 않고 실행하면 SP가 내 서버에 있는지 확인해야합니다. – James123

+1

이 저장 프로 시저의 코드는 무엇이 생성됩니까? 앱이 한 서버에서 스토어드 프로 시저를 실행하려고하지만, 앱이 해당 스토어드 프로 시저를 찾지 못하면 다른 서버에서 스토어드 프로 시저 정의를 가져 와서 생성 한 다음 실행하십시오. 이것은 * 응용 프로그램 *이 수행해야하는 것과 같이 들리지 않습니다. 두 곳에서 스토어드 프로 시저가 필요하다면, * 지금 * 그렇게해야합니다. –

+0

예를 들어, 데이터베이스를 백업하고 새 서버에 복원하고 연결 문자열을 업데이트하고 손을 닦고 행운을 빌며 수 있습니다. –