MSSQL을 사용한지 얼마 안된 초보 입니다..
매일 자정에 144개의 레코드를
쿼리문을 이용해 등록하려고 하는데요
하루 24시간 기준으로 10분단위로 하려고 하고요.. (그래서 총 144번)
레코드 내용은
번호 내용 등록시간
000 공지사항-000 2014-05-09 00:00:00
001 공지사항-001 2014-05-09 00:10:00
002 공지사항-002 2014-05-09 00:20:00
. . .
. . .
. . .
이런식으로 하려고 합니다.
검색을 해보니까 스케쥴러를 이용해서 저장프로시저를 만들고 일정 시간에 그 프로시저를 구동시키면 된다고 하는데
일단 쿼리문 자체에 감이 안와서 질문 드립니다.. ㅠㅠ
회사 여건상 10분마다 공지 내용을 띄워야하고 매번 확인하기 번거로워서 한번에 등록해서 내용을 수정하는식으로 하려고
만드는건데요
쿼리문을 어떤식으로 만들어야할지 감이 안와서 질문 드립니다..
Comment 1
-
이스트럭(강동운)
2014.05.10 03:06
안녕하세요.
아래 쿼리 활용해보시기 바랍니다.
감사합니다.
SELECT
'공지사항-'+ REPLICATE('0',3-LEN(CONVERT(VARCHAR,ROWNUM))) + CONVERT(VARCHAR,ROWNUM)
, DATEADD(MI, (ROWNUM-1)*10, CONVERT(DATETIME,CONVERT(CHAR(10),GETDATE(),120)))
from
(
select top 144 row_number() over(order by a.object_id) as ROWNUM
from sys.objects a cross join sys.objects b
) dat
위의 쿼리에 쓰인 함수들 예제 및 도움말 링크 입니다.
--ROWNUM 예제
SELECT row_number() over(order by object_id) as ROWNUM from sys.objects
--//REPLICATE 예제
SELECT REPLICATE('0',1)
, REPLICATE('0',2)
, REPLICATE('0',5)
, REPLICATE('0',10)
--//CONVERT 예제
SELECT CONVERT(CHAR(10), GETDATE(),120)
--//DATEADD 예제
SELECT DATEADD(MI, 10, GETDATE())
CAST 및 CONVERT(Transact-SQL): http://msdn.microsoft.com/ko-kr/library/ms187928(v=sql.105).aspx
DATEADD(Transact-SQL): http://msdn.microsoft.com/ko-kr/library/ms186819(v=sql.105).aspx
ROW_NUMBER(Transact-SQL): http://msdn.microsoft.com/ko-kr/library/ms186734(v=sql.105).aspx
REPLICATE(Transact-SQL): http://msdn.microsoft.com/ko-kr/library/ms174383(v=sql.105).aspx