Sql server 插入下一条记录
我有这样的要求,我必须插入一个Sql server 插入下一条记录,sql-server,sql-server-2008,Sql Server,Sql Server 2008,我有这样的要求,我必须插入一个BID、一个SID的记录,如果execdate和stopbilldate存在,那么我需要插入NULL作为stopbilldate的新记录 示例如下: Sno BID SID LID Comapny Execdate StopBilldate 5 BLDG100 C 6500 Cole 1/5/2012 5/29/2012 6 BLDG100 C 000000 Vacant 5/30/2012 NULL
BID
、一个SID
的记录,如果execdate
和stopbilldate
存在,那么我需要插入NULL
作为stopbilldate
的新记录
示例如下:
Sno BID SID LID Comapny Execdate StopBilldate
5 BLDG100 C 6500 Cole 1/5/2012 5/29/2012
6 BLDG100 C 000000 Vacant 5/30/2012 NULL
你可以在桌子上放一个。触发器是一种在事件发生时执行的存储过程
以下是您可以放在桌子上的示例:
CREATE TRIGGER [trg_yourTable]
ON [yourTable]
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON;
-- Insert statements for trigger here
INSERT INTO yourTable (bid, sid, lid, company, execdate, stopbilldate)
SELECT i.bid, i.sid, 0, 'Vacant', DATEADD(day, 1, i.stopbilldate), null
FROM inserted i
WHERE i.bid is not null
and i.sid is not null
END
当您
在表中插入
数据时,这将运行并插入
要添加到表中的其他行 因此,为了澄清您的问题,您正在寻找一种方法,即每次为一行填写StopBilldate
,都需要为相同的BID
和SID
创建一个新行,其中LID
的默认值为“000000”,而公司的默认值为“空缺”,在Execdate
中的上一个值StopBillDate
之后的第二天,在StopBillDate
中为空。这是正确的吗?这可以通过触发来实现。