Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 插入下一条记录_Sql Server_Sql Server 2008 - Fatal编程技术网

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
中为空。这是正确的吗?这可以通过触发来实现。