0
다른 레코드에 따라 필드를 업데이트해야합니다. SQL Server를 사용합니다. 내 데이터베이스에는 두 개의 테이블이 있습니다.시간에 따라 에이전트 작업으로 열을 동적으로 업데이트하는 방법
create table product(
IDproduct int primary key,
numberA int default 0,
numberB int default 0)
create table production(
IDproduct int primary key,
start datetime not null,
duration time(7) not null,
columnName varchar(32) not null)
나는 그 (+ 기간을 시작) 할 때 < = GETDATE() 제품의 필드 numberA 또는 numberB를 증가해야합니다. 생산의 columnName에는 업데이트 할 열의 이름 (numberA 또는 numberB)이 있습니다. 마지막으로 생산에서 레코드를 삭제합니다.
이 내 현재 코드,하지만 난 단지 열 numberA 업데이트 :
SET XACT_ABORT ON;
DECLARE @ProducedProducts TABLE(
IDproduct int
);
BEGIN TRY
BEGIN TRAN;
DELETE FROM PRODUCTION
OUTPUT deleted.IDproduction INTO @ProducedProducts
WHERE DATEADD(second,
datepart(hour,duration) * 3600 +
datepart(minute,duration) * 60 +
datepart(second,duration),
start) <= GETDATE();
UPDATE PRODUCT
SET numberA += 1
WHERE IDproduct IN(
SELECT pp.IDproduct
FROM @ProducedProducts AS pp
);
COMMIT;
END TRY
BEGIN CATCH
THROW;
END CATCH;