您必須使用SQL Server作業或Windows服務創建一個作業,以使用現有模式執行作業。
如果您可以更改表格結構,則可以在表格中添加Computed
列,該列將根據現有鎖定和基於截止日期邏輯鎖定行。您將無法使用index
這個新的計算列,因爲它使用GETDATE()
。要了解更多關於計算列的信息,可以參考here。
在這個模式,你將不得不
- 更新手動鎖定
- 是指新的鎖定列檢查,如果連續被鎖定
要創建初始鎖列計算列,你可以嘗試這樣的事情。
CREATE TABLE data
(
dataid int identity(1,1) primary key,
value VARCHAR(30),
startdate date,
cutoffdate date,
old_lock bit,
lock as (CASE WHEN (cutoffdate <= GETDATE()) OR old_lock = 1 THEN 1 ELSE 0 END)
)
INSERT INTO data values('row lock by manual lock','2010-01-01','2099-01-01',1),
('row lock by auto lock','2010-01-01','2010-01-02',0),
('row unlocked','2010-01-01','2099-01-01',0),
('row locked','2010-01-01','2011-01-01',1)
SELECT * FROM data;
嗨,謝謝,不知道爲什麼我沒有想到計算列,會嘗試 –