매시간 MS SQL Studio에서 자동으로 쿼리 실행


13

대기업에서 응용 프로그램을 지원하며, 내 역할 중 하나는 데이터를 정리하는 것입니다. 1 시간마다 실행해야하는 쿼리가 있으며 자동화하고 싶습니다. 조직 정책으로 인해 SQL Server 에이전트 작업을 만들거나 스키마를 수정할 수 없으며 데이터 만 조작 할 수 있습니다.

끝없는

WHILE(1=1)
BEGIN 
WAITFOR DELAY '01:00';
--do work
END

나는 나를 위해 일을하지만, 영구 개방 연결의 생각에 어깨를 으 rug.

이상적으로는 매시간마다 주어진 코드 조각을 실행하도록 MS SS 자체를 스크립팅하지만 가능한지 확실하지 않습니다.

이 문제에 대한 해결책이 있습니까?


1
PC에서 Windows Sceduler를 사용할 수 있습니까?
sepupic

12
예약 권한이있는 사람에게 문의하십시오.
Mister Magoo

@sepupic MS SS에 아무것도 도움이 될 수 없다면 다음 연구의 땅입니다.
Ivan Koshelev

나는 동의한다. 클라이언트 컴퓨터에서 루핑 코드를 실행하는 것이 매우 불편합니다. 귀하의 PC가 고장 나면 일부 PC 등이 분리되었습니다. 나는 응용 프로그램 서버에서 AutoSys 또는 다른 스케줄링 도구를 실행 하는 다른 옵션이 있기 때문에 응용 프로그램 팀이 SQL 작업을 사용할 수없는 유사한 환경에서 일했습니다 . 다른 예약 된 작업이 어떻게 관리되는지 알아보십시오. 또 다른 해결 방법은 SQL Server Reporting Services ? 내가 알지 못하는 이상적 ...
Terry C

9
올바른 솔루션은 DBA로 이동하여 SQL Server 에이전트 작업을 작성하여 매시간이 정리를 실행하도록하는 것입니다. 그런 다음 당신이 필요 "정리"너무 자주받을 것을 데이터베이스에 데이터를 얻고있는 이유를 알아 고정.
alroc

답변:


22

친구가 sqlcmd (Microsoft Technet)입니다.

  1. 정리 작업을 실행하는 데 필요한 스크립트를 사용하여 SQL 파일을 작성하십시오.
  2. sqlcmd.exe 및 필요한 매개 변수를 사용하여 스크립트를 실행하십시오.
  3. Windows 예약 된 작업을 만들고 필요한 모든 매개 변수를 사용하여 명령을 추가하십시오.

예 :

sqlcmd -d YOUR_DB -E -i YOUR_SCRIPT.SQL -o OUTPUTFILE.TXT 

행운을 빕니다.


4
이 스크립트는 개발 컴퓨터가 아닌 예약 된 작업과 함께 적절한 앱 / 툴 서버에 배치해야합니다.
GER

7

쿼리를 실행하기 위해 Management Studio가 필요하지 않습니다.

누군가가 당신을 위해 작업 일정을 잡을 수있는 옵션이 없다면, hot2use의 답변에 언급 된 것처럼 sqlcmd 조사해야합니다

지원되지 않는 버전 (버전을 지정하지 않았으므로)에있는 경우 명령 행 클라이언트 인 osql 도 있지만 해당 도구는 더 이상 사용되지 않습니다.

그런 다음 원하는 스케줄러 (예 : Windows 작업 스케줄러)를 사용하여 명령을 예약하고 다음과 같이 실행할 수 있습니다.

OSQL -E -i c:\temp\dowork.sql

서버 선택 및 인증에 필요한 옵션을 보려면 설명서를 참조하십시오.


-1

MS SQL Studio (객체 탐색기에서 서버를 확장하면 일반적으로 목록의 맨 아래에 있음)에있는 "SQL Server 에이전트"를 사용하는 것이 가장 좋습니다.

정의 된 간격으로 실행되도록 설정할 수있는 작업이 생성됩니다. 작업은 클라이언트가 아닌 서버에서 서비스로 실행됩니다. 즉, 클라이언트 연결이 끊어도 여전히 실행되고 서버가 재부팅 된 경우 (알 수없는 이유로) 다시 초기화하지 않아도 작업이 계속 실행됩니다.

단점은이 작업을 수행하려면 높은 액세스 권한이 필요할 것입니다.


3
당신은 아마 질문 에서이 비트를 간과했습니다 : 조직 정책으로 인해 SQL Server 에이전트 작업을 만들 수 없습니다 [...]
Andriy M

@Andriy : 여전히 정답입니다. 우리는 사람들이 조직의 요구에 그림자 IT 대응을 돕도록해서는 안됩니다.
Dylan Knoll 2016 년

1
@DylanKnoll : 글쎄, 응답자가 OP의 정책에 대해 언급하고 있음을 인정하고 어리 석음에 대한 주장을 포함시키는 것 (예를 들어, 당신의 의견에 따라)을 포함시키는 것이 완벽하다고 생각합니다. 제안되고 받아 들여진 옵션은 너무 끔찍한 것처럼 보이지 않으므로이 경우 원칙을 고수하는 것이 약간 어려워 보일 것입니다.
Andriy M

나는 당신의 요점도 얻었지만 DBA의 관점은 어떻습니까? 누군가가 DB 디자인에서 실수를 숨기려고 시도하여 마치 빛에 들어 가지 않도록하는 것처럼 들립니다.
Dylan Knoll

1
"SQL Server 에이전트 작업"으로 변경되기 전에 "SQL 서버 작업"을 읽습니다. 나는 후자보다 전자에 다른 의미가있을 수 있다고 생각하지 않습니다. (그런데 그것을 편집 한 것은 OP가 아니 었습니다. 약간 잘못된 용어를 정확히 내가 이해하는 방식으로 이해하고 수정 한 사람이었습니다.) 그러나 원래의 문구는 간과하기가 훨씬 쉽습니다. 어쨌든, 나는 여전히 당신 편에 대한 감독이었다고 생각합니다 :)
Andriy M
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.