使用现有验证从另一个表插入一个表

时间:2016-04-03 09:02:10

标签: c# asp.net sql-server

我有两张桌子:

  • Table_Users
  • Table_Sites

当我为Table_Users创建条目时,我还要将数据从Table_Users插入到Table_Sites,但只有当它不存在时,我要插入的数据是:< / p>

  1. Table_Users.userID
  2. Table_Users.username
  3. Table_Users.site
  4. Table_Sites中的列名是:

    1. Table_Sites.userID
    2. Table_Sites.username
    3. Table_Sites.siteName
    4. 我需要知道的是如何在字符串中执行SQL以与c#中的SqlCommand一起使用。

2 个答案:

答案 0 :(得分:0)

嗯,这可以用非常简单的方式解决:

insert into Table_Sites(userID, userName, siteName)
select tu.userID, tu.userName, tu.site
from Table_Users tu
where not exists(select 1 from Table_Sites ts 
  where ts.userID = tu.userID and ts.userName = tu.userName 
    and ts.siteName = tu.site )

不需要换行符,因此如果您愿意,可以将它放在一行中。

另一种做同样事情的方法是使用except,它只返回第一次选择的那些在第二次选择中找不到的行:

select tu.userID, tu.userName, tu.site
from Table_Users tu

except

select ts.userID, ts.userName, ts.siteName 
from Table_Sites ts 

答案 1 :(得分:0)

尝试使用PetaPoco。 在nuget中可用