2014-06-17 3 views
0

특정 이벤트에 의해 결정되는 시간에 MSSQL 필드 데이터에 대한 특정 업데이트를 수행해야합니다. 200 개의 새로운 레코드가 추가 된 후ColdFusion을 사용하여 데이터베이스 자동 업데이트

CFSCHEDULE 특정 날짜와 시간, 이벤트가 아니라 날짜와 시간을 의미합니다.

Adobe 문서에서 아무것도 찾을 수 없습니다.

누구나 아이디어가 있으십니까?

답변

2

어떤 ColdFusion에서 코드에 대한 필요가 없습니다 SQL 서버에서 일어나는 이벤트를 기반으로 MSSQL 서버에서 데이터 필드에 순수 업데이트를 수행하는 경우. 최선의 행동은 관심있는 데이터베이스 테이블에서 트리거를 사용하여 도움을주는 테이블을 만드는 것입니다.

예컨대 도우미 테이블 dbo.MY_HELPER을 rowsSinceLastEvent라는 열로 구성 할 수 있습니다. 대상 테이블의 트리거를 사용하면 마지막 이벤트 이후의 행 수를 각 삽입에 대해 확인하고 대상 행 수가 남아있는 경우 이벤트를 실행할 수 있습니다 행 카운트 넘버에 도달했거나 부풀립니다.

트리거 정의는 다음과 같습니다. 당신은 당신이이 중 하나를 데이터베이스에 폴링의 일종을하거나 데이터베이스를 모니터링하는 이벤트 게이트웨이를 구축 할 수 있습니다 사용 사례에 따라 ColdFusion에서를 사용하는 경우

DECLARE @rowsSinceLastUpdate INT 

SELECT @rowsSinceLastUpdate = h.rowsSinceLastUpdate 
FROM dbo.MY_HELPER h 

IF @rowsSinceLastUpdate > 200 
BEGIN 
/* UPDATE ANY REQUIRED COLUMNS OR EXECUTE A STOREDPROCEDUT */ 
UPDATE dbo.MY_HELPER SET rowsSinceLastUpdate = 0 
END ELSE BEGIN 
UPDATE dbo.MY_HELPER SET rowsSinceLastUpdate = rowsSinceLastUpdate + 1 
END 

(이것은 단지 의사 코드).

관련 문제