2017-04-25 9 views
0

참고 1 : 지금까지 연구 한 내용에서 볼 수있는 방법은 없습니다. 그러나 내가 틀렸다고 희망합니다.조건부 트리거 : CONNECT 문 SQL

주 2 : 이의 목표는 ID 번호를 기반으로 정보를 찾기 위해 다른 데이터베이스

내가 (SSMS에서) SQL 스크립트를 쓰고 있어요에 쿼리 사이의 연결을 변경해야 할 필요성을 제거하는 것입니다. 이 쿼리를 실행할 수있는 데이터베이스가 2 개 있습니다 (테스트 DB와 프로덕션 DB). ID 번호는 테스트 DB 또는 프로덕션 중 하나이지만 둘 다가 아닙니다. 내가하고 싶은 SQLCMD 모드에서 CONNECT 문을 (또는 다른 방법이지만, 아직 하나를 찾을 수있다) 적절한 DB에 연결하는 것입니다. 이와 같이 : 위의 코드는 이론적으로 내가 올바른 DB에 연결되어 있는지 확인합니다 (ID가 존재한다고 가정). 두 번째 : CONNECT 문은 IF EXISTS에 관계없이 활성화되므로 프로덕션에 대해 항상 쿼리가 실행됩니다.

이 목표를 달성 할 수있는 방법이 있습니까? 미리 감사드립니다.

+1

'IF NOT EXISTS'는 T-SQL 문이고': CONNECT'는 SQLCMD 문이므로 이것은 작동하지 않습니다. SQLCMD는 SSMS 파서에 의해 실행되는 반면 T-SQL은 데이터베이스에 의해 실행됩니다. SQLCMD에는 조건부 논리가 없으므로 SQLCMD 스크립트에서 수행하려는 작업을 수행 할 수 없습니다. 데이터베이스가 같은 인스턴스에 있다면,': CONNECT' 대신에'USE' (T-SQL 명령)을 사용하십시오. 다른 인스턴스에 있다면 SSMS에서이를 수행 할 수 없습니다. 적절한 매개 변수를 사용하여 외부 적으로'sqlcmd'를 호출해야합니다. –

답변

0

연결 변경을 제거해야하는 이유가 무엇인지 모르겠으므로 두 테이블을 결합하여 원하는 결과로 진행할 것을 고려 했습니까? 원하는 흐름 인 경우 리턴 된 테이블에서 ID의 존재를 점검 할 수 있습니다.

this도 확인할 수 있습니다. 도움이되는지 알려주세요.