2016-04-03 57 views
0

我有2个表:插入一个表从另一个与存在验证

  • Table_Users
  • Table_Sites

当我创建Table_Users一个条目我想也Table_Users插入数据Table_Sites但只有当它不存在,我要插入的数据是:

  1. Table_Users.userID
  2. Table_Users.username
  3. Table_Users.site

和列名在Table_Sites它们是:

  1. Table_Sites.userID
  2. Table_Sites.username
  3. Table_Sites。 siteName

我需要知道的是如何在一个字符串中执行我的SQL,以便在c#中使用SqlCommand

+0

'Table_Users.userID'是否为'Table_Users'自动生成ID? – Bikee

+0

欢迎来到stackoverflow。请阅读[问]。提示:你需要展示你已经尝试过的东西。 –

回答

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 
0

尝试使用PetaPoco。 nuget中可用