自动插入行

时间:2014-06-18 17:49:20

标签: c# sql

我有3张桌子:

表1

CustomerID Name Sname Zipcode 1 test1 test1 xxx2 2 test2 test2 yyy2 3 test3 test3 xxx2 表2

StaffID Name sname 1 Jack Mack 2 Jhon Addison

表3

ID CustomerID StaffID 1 1 1 我不确定SQL是否可以这样做,所以在C#中我想要的是如果StaffID 2不在表3中并且如果工作人员想要访问zipcode xx2中的所有客户,那么通过单击访问按钮他应该被插入所有的邮政编码。因此,如果我选择Zipcode xxx2,那么查询应首先检查我是否没有访问特定的Zipcode,如果没有,则将该人添加到表3中,以便更新的表3看起来像这样:

ID CustomerID StaffID 1 1 1 2 1 2 3 3 2 正如您所看到的,StaffID 2想要访问xxx2 zipcode,因此他在表3中获得了两个条目,因为有两个CustomerID,其Zipcode与xxx2相同。

我做了一些在线研究我会IF EXISTS (SELECT,但它只添加一个条目。此外,我想我将期待来自C#zipcode,CustomerID和StaffID

的3个参数

2 个答案:

答案 0 :(得分:0)

根据您的描述,您似乎只需要一个简单的插入声明。

INSERT INTO Table3 (CustomerID, StaffID)
select CustomerID, @StaffId from Table1
where Zipcode = @zipcode
    and NOT EXISTS(select StaffID from Table3 where StaffID = @staffId)

答案 1 :(得分:0)

尝试此sql查询,假设您将@StaffId,@ CustomerId和@Zip作为参数传递

INSERT INTO Table3 (CustomerID, StaffID)
SELECT CustomerID, @StaffId FROM Table1
WHERE Zipcode = @zip
AND NOT EXISTS(SELECT StaffID FROM Table3 WHERE StaffID = @staffId 
AND CustomerID = @CustomerId)