Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.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
C# 自动插入行_C#_Sql - Fatal编程技术网

C# 自动插入行

C# 自动插入行,c#,sql,C#,Sql,我有三张桌子: 表1 客户ID名称Sname Zipcode 1测试1测试1 xxx2 2测试2测试2 YYYY 2 3测试3测试3 xxx2 表2 斯塔夫名字斯奈姆 1杰克麦克 2约翰·艾迪生 表3 ID CustomerID StaffID 1 1 1 我不确定SQL是否能做到这一点,所以在C中,我想要的是,如果StaffID 2不在表3中,并且如果员工希望访问zipcode xx2中的所有客户,那么通过单击访问按钮,应该为所有zipcode插入他。因此,如果我

我有三张桌子:

表1

客户ID名称Sname Zipcode 1测试1测试1 xxx2 2测试2测试2 YYYY 2 3测试3测试3 xxx2 表2

斯塔夫名字斯奈姆 1杰克麦克 2约翰·艾迪生

表3

ID CustomerID StaffID 1 1 1 我不确定SQL是否能做到这一点,所以在C中,我想要的是,如果StaffID 2不在表3中,并且如果员工希望访问zipcode xx2中的所有客户,那么通过单击访问按钮,应该为所有zipcode插入他。因此,如果我选择Zipcode xxx2,那么查询应该首先检查我是否访问了同一个Zipcode,如果没有,那么将此人添加到表3中,这样更新后的表3将如下所示:

ID CustomerID StaffID 1 1 1 2 1 2 3 3 2 如您所见,StaffID 2希望访问xxx2 zipcode,因此他在表3中得到了两个条目,因为有两个zipcode与xxx2相同的CustomerID


我做了一些在线调查,如果存在,我会选择,但它只是添加了一个条目。另外,我想我会从C zipcode、CustomerID和StaffID中得到3个参数,从您的描述来看,您似乎只需要一个简单的insert语句

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

尝试此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)

表3是否需要持久化,或者您是否需要一个将表3作为结果的查询,但它永远不会存储在数据库中?另外,我想我理解您的要求,但我不知道是否StaffID 2不在表3要求中。@ScottChamberlain表3在那里,因此它将检查表1中的zipcode并将结果插入表3。表3的FK从StaffID表3到StaffID表2,从Customer表3到CustomerID表1,因此,如果StaffID2已经访问CustomerID 2,那么在表3中为他设置另一个条目是没有意义的,我需要在表3 CustomerID中插入StaffID值@CustomerID,@SaffID,因为这将由用户C提供。这会自动将StaffID添加到所有邮政编码中吗?不,您使用这个而不是那个调用。INSERT INTO可以使用值并添加一行信息,也可以像我一样将其链接到select语句中。