Hi Naresh, you could do this using a trigger and a history table. See the script below and test it in a separate database.
use tempdb
go
CREATE TABLE orders (Orderid int NOT NULL,Item int ,Status_new char(1), Status_old char(1), [Date] date, [Time] time, Price decimal(5,2), Quantity int
CONSTRAINT [XPK_orders] PRIMARY KEY(Orderid ASC));
CREATE TABLE ordershistory (Historyid int identity not null, Orderid int NOT NULL,Item int ,Status_new char(1), Status_old char(1), [Date] date, [Time] time, Price decimal(5,2), Quantity int
CONSTRAINT [XPK_ordershistory] PRIMARY KEY(Historyid ASC));
go
CREATE TRIGGER u_orders on orders
after insert, update
as
Insert into ordershistory(Orderid, Item, Status_new, Status_old, [Date], [Time], Price,Quantity)
Select i.Orderid, i.Item, i.Status_new, i.Status_old, i.[Date], i.[Time], i.Price, i.Quantity
from inserted i
left join deleted d
on i.Orderid = d.Orderid
where i.Status_new <> d.Status_new
or i.Status_old <> d.Status_old
or d.Orderid is null
;
go
insert into orders (Orderid, Item, Status_new, Status_old, [Date], [Time], Price,Quantity)
values (10000901, 2, 'A', '','2023-10-21','08:58:00', 100, 10);
Select *
from orders;
Select *
from ordershistory;
update orders
set Status_new = '', Status_old = 'Z', [Date] = '2023-10-22', [Time] = '08:58:07'
where Orderid = 10000901;
Select *
from orders;
Select *
from ordershistory;
go
DROP TRIGGER u_orders;
DROP TABLE orders;
DROP TABLE ordershistory;
HTH or please describe your intention more detailed.