存储过程插入后插入

时间:2017-02-20 20:34:38

标签: sql-server

我正在研究SQL Server 2008,我有两个表:

  • First:Born table with columns ID,Name,Address,Birth_Date
  • 第二名:包含列ID,姓名,收入,地址的公民表

现在,每当我向Citizen插入一行时,我希望数据库在Born中插入一行,这意味着我想“在插入Born之后插入Citizen”。

但我需要它作为参数,所以我不必每次都做同样的事情

我添加了一个存储过程

Create proc CitizenBorn
As
Begin
    Insert into dbo.Citizen (ID, Name, Income, Address, Card_ID)
        Select 
            Id, Name, '0', Address, Card_ID 
        From 
            dbo.Born
End

但是它不起作用,因为我试图将行插入“Born table”但它没有影响“Citizen table”

1 个答案:

答案 0 :(得分:1)

在Born上创建一个触发器,插入到Citizen表中,每个插入Born:

CREATE TRIGGER Born_Insert 
   ON  dbo.Born 
   AFTER INSERT
AS 
BEGIN
    SET NOCOUNT ON;
    INSERT INTO dbo.Citizen ([ID], [Name], [Income], [Address], [Card_ID])
        SELECT [Id], [Name],'0', [Address], [Card_ID] 
          FROM inserted;
END
GO