stored procedure 를 가지고 일 배치를 돌리려고 합니다.
문제는 scheduling을 걸어야하는데요..
어떤 방법이 있는지 어떻게 하면 되는건지 알려주세요.
1) *.bat 로 만들려면 db접속을 어떻게 해야하는건지.
2) dts 를 통해서 스케쥴링 걸려면 어떤식으로 해야하는지... 잘 되지가 안되요.. DTS하면 작업에도 생겨야하는데 작업은 하나도 생기지가 않고요.. --;
도와주세요..
묻는 내용은 짧지만 깊은 부분에 대한 것을 묻네요 ^^
Sp상에서 job을 거는 건..
저도 책에서만 봤지 실무로 안해봐서 잊어버린 듯하네요.
찾아보고 나오면 적어드리지요..
1) bat로 접속하는 방법?
- 어떤 작업을 하는가에 따라 접속할 수도 있읍니다.
도스상에서 접속 가능한 것은 Bulk(bcp)를 이용하여 접속하는 방법입니다.
예) db..name의 table 내용을 table_name.txt로 저장하는 예
bcp "select * from db_name..table_name" queryout c:\table_name.txt -c -n \t -Sservername -Udatabase_username -Pdatabase_password
당연 servername, u, p의 옵션을 다 적어주셔야겠지요..
이렇게 하여 만든 bat파일을 특정시간에 실행되게 하면(작업예약을 통해) 다음날 오게 되면 txt파일이 생성된 것을 볼 수 있을 겁니다.
2) dts의 작업에 대해..
dts의 작업은 어떤식으로 해서 만드느냐에 따라 보이는 곳이 틀릴 수도 있습니다.
예를 들어 데이터변환서비스 > 로컬패키지 > 새패키지 하여 만들게 되면 당연 그것은 로컬패키지에 보이게 될 겁니다.
그런데 데이터가져오기/내보내기 마법사를 통해 dts를 만들게 되면
로컬패키지에서 보이지 않습니다. 그러나 로컬패키지에서 작업전송작업을 누르게 되면 등록된 작업들이 보이게 될 것입니다.
방법이야 많겠지만 저같은 경우에 즐겨스는 방법은
ms-sql 의 agent를 사용합니다.
먼저 프로시저에 오늘날짜(getdate())를 특정변수에 넣고 난뒤에
enterprise manager에 있는 sql server agent 내의 job에
해당 프로시저를 특정시간대에 실행하도록 세팅하면 됩니다.
두분 답변 잘 봤습니다.
일단 해결은 작업을 등록했습니다.
DTS 를 하면 작업에 스케쥴이 안걸려서 안되더라구요.
처음에는 작업도 안되서 글을올렸었는데요.
프로시져 4개를 한 작업으로 돌리려고 그래서 에러간 난건지 모르겠지만.--;
그냥 프로시저 4개를 각각해서 4개의 job 으로 구성했습니다.
원하는 답은 여리님이 답해주신 bat 에 관한 상세한 부분을 알고 싶은데요..
좀 어려워서 잘 이해가 안가요.. ^^;;;;
그럼 오늘도 좋은 마무리 하세요~~~