2009-07-06 3 views
1

개발 스키마에 SQL 저장 프로 시저를 만들었습니다. 이제 우리는 개발 코드를 프로덕션으로 옮기는 작업에 착수했습니다. 한 스키마에서 다른 스키마로 저장 프로 시저를 복사하려면 어떻게합니까? 타겟 스키마에서 전체 프로 시저를 다시 컴파일해야합니까? 또는 대상 스키마에 이러한 프로 시저를 등록하는 방법이 있습니까? 어느 누구도 저장 프로 시저를 복사하는 더 나은 방법을 제안 할 수 있습니까?DataSources/Schema간에 SQL 저장 프로 시저를 복사 하시겠습니까?

나는 윈도우 버전 5 릴리스에 대한 수레 쉬가

답변

4

저장 프로 시저를 만드는 SQL은 일부 소스 제어 시스템 (CVS, SVN 등)의 프로젝트의 일부로 소스 파일에 있어야합니다.

프로젝트를 새 서버 (Dev, QA 또는 Production)에 "배포하려면"새 서버/데이터베이스에서 "원본 SQL"파일을 실행하기 만하면됩니다.

실제로 데이터베이스 변경 (테이블 열 변경, 새 테이블 추가)은 소스 제어의 SQL 파일에 있어야하며 동일한 방식으로 적용해야합니다.

비록 데이터베이스 개발 도구가 항상 그런 것처럼 보이지는 않지만 SQL도 소스 코드입니다. :-)

+0

예, 맞습니다.하지만 외부 데이터베이스 개발 도구를 사용하지 않고 iSeries 명령을 통해이 절차를 등록/실행하는 방법은 무엇입니까? 즉 모든 SQL 파일을 물리적으로 실행하지 않아도됩니다. 자격을 갖춘 저장 프로 시저로 스키마를 프로덕션하기 만하면됩니다. –

+0

SQL로 소스 유형을 가진 정상 소스 파일에 테이블, 인덱스 등을 작성하기 위해 SQL을 넣습니다. 그런 다음 현재 라이브러리를 프로덕션 데이터 라이브러리로 변경하고 RUNSQLSTM 명령으로 SQL을 실행합니다. 당신은 쉽게 PDM에 추가 할 수 있습니다 ...나는 옵션으로 RS를 사용하고 "RUNSQLSTM SRCFILE (& L/& F) SRCMBR (& N) COMMIT (* NONE)"을 명령으로 사용합니다. 원하는 경우 모든 것을 한꺼번에 실행할 수 있습니다. –

+0

완벽한 세계에서 그렇습니다. 그러나 여기저기서 이들을 생성하고 소스를 남기지 않는 뼈대를 가진 프로젝트 매니저가 있다면, 새로운 db로 복사하는 꽤 자동화 된 방법을 갖는 것이 좋을 것입니다. – btk

0

가장 좋은 방법은 (지금까지) SQL Management Studio를 사용하고 스크립트 프로 시저로 ... 메뉴 옵션을 사용하는 것이 었습니다. 이렇게하면 sprocs에 대한 SQL 소스가 생성됩니다 (사용하는 메뉴 옵션에 따라 CREATE/ALTER)

모든 sprocs/user 정의 함수를 대량 복사해야하는 경우 작업 -> 스크립트 생성 메뉴 옵션을 사용하십시오. 결과 대화 상자에서 스크립트를 생성 할 sproc/함수를 선택한 다음 새 db에서 해당 스크립트를 실행할 수 있습니다.

1

일반적으로 원래 소스는 필요하지 않습니다. Operations Navigator를 열고 데이터베이스를 통해 개발 SP를 보유하고있는 스키마로 드릴 다운하십시오. 원하는 항목을 모두 선택하고 마우스 오른쪽 버튼을 클릭하여 'Generate SQL'을 선택하십시오. 'RunSQL Scripts'에서 열도록 선택하십시오 (선택적으로 DROP 문 포함).

그러면 모든 선택된 SP의 스크립트가 한 곳에서 제공됩니다. 이것은 당신이 선택하는 곳이면 어디서든지 저장할 수 있습니다. 또한 스크립트에서 스키마 이름을 변경해야하는 경우 편집 -> 바꾸기를 사용할 수 있습니다.

그런 다음 새 스키마를 가리 키기 위해 Connection -> Use Temporary JDBC Settings ... 메뉴 옵션을 사용할 수 있습니다. 마지막으로 툴바에서 Run All 아이콘을 클릭하면 스크립트에서 새 스키마로 SP를 생성 할 수 있습니다.

iNav 'Run SQL Scripts'에 사용할 스키마를 선택하고 새 스키마를 가리킨 다음 본질적으로 단일 작업으로 생성하십시오.

관련 문제