1
這裏是CustInfo如何插入一行到一個表,並在SQL Server中插入新行前更新的最後一排
Cm_ID | Cust_ID | StartDate | EndDate | Status
1 | 1020 | 05/09/2013 | 20/09/2013 | Off
2 | 1027 | 16/09/2013 | **31/12/2099** | **On**
3 | 1020 | 21/09/2013 | 31/12/2099 | On
我想要做我的表的結構,每當我將插入新行對於Cust_ID = 1027它應該首先將[EndDate]更新爲新的[StartDate]即Today和Set [Status] ='Off'。
插入新行後,它應該是這樣的
Cm_ID | Cust_ID | StartDate | EndDate | Status
1 | 1020 | 05/09/2013 | 20/09/2013 | Off
2 | 1027 | 16/09/2013 | **30/09/2013** | **Off**
3 | 1020 | 21/09/2013 | 31/12/2099 | On
4 | 1027 | 01/10/2013 | 31/12/2099 | On
我已經做如下這個使用2個不同的查詢。
Update CustInfo SET EndDate = '30/09/2013' ,Status='Off'
WHERE Cm_ID=(SELECT MAX(Cm_ID) FROM CustInfo WHERE EndDate='12/31/2099' AND Cust_ID=1027)
INSERT INTO CustInfo ([Cust_ID], [StartDate], [EndDate], [CurrentStatus])
VALUES(1027,'01/10/2013','12/31/2099','On')
現在我想要使用單個查詢或存儲過程來執行此操作。但我不知道如何做到這一點?