如何创建存储过程

时间:2013-12-21 16:50:21

标签: sql sql-server stored-procedures

我有两个表,table1table2

table1

product_name 
product_info

table2

product_name 
product_info 
Product_address 
etc

如果table1

中插入了任何新产品名称,我需要插入table2

我尝试了下面的代码,但它没有插入。我在哪里弄错了?

as
begin
    insert into  table2  (product_name product_info Product_address etc) values   (...);

    INSERT INTO table1(Product_Name)
         SELECT Product_Name 
         FROM tb_new_purchase
         WHERE NOT EXISTS (SELECT Product_Name FROM tb_new_product_Name_id )
 end

2 个答案:

答案 0 :(得分:1)

您需要一个相关的子查询。我发现你的表名不一致。我想这就是你想要的:

INSERT INTO table1(Product_Name)
     SELECT Product_Name 
     FROM table2
     WHERE NOT EXISTS (SELECT Product_Name
                       FROM table1
                       where table1.Product_Name = Table2.Product_Name
                      );

您的查询永远不会插入新名称,因为查询中至少有一行。顺便说一句,你也可以表达为:

INSERT INTO table1(Product_Name)
     SELECT Product_Name 
     FROM table2
     WHERE Product_Name not in (SELECT Product_Name
                                FROM table1
                               );

答案 1 :(得分:0)

看起来它只会在tb_new_product_name_id为空的地方插入。