2011-12-08 69 views
2

我有一个SQL查询检查表中的重复记录,并且在向特定表中添加一些列后发生故障。SQL插入查询出错

下面是我的表结构:

**user1** table 
UserID 
Name 
LoggedInUser -> each record's owner identified by LoggedInUser 

**UserCheck** table 
UserID 
Name 
Issue 
LoggedInUser 

我的SQL查询:

string LoggedInUser = (User.Identity.Name); 

nonqueryCommand.CommandText = 
"INSERT INTO UserCheck(UserID, Name, Issue 
    , LoggedInUser) 
SELECT user1.UserID, user1.Name, 'DUPLICATED user found in User1 List' 
    , '" + LoggedInUser + "' 
FROM UserDB AS user1 
GROUP BY user1.UserID, user1.Name 
HAVING COUNT(*) > 1"; 

//


编辑:

总之,我的问题是,user1表包含来自不同用户的记录。

而我的检查应该只grep那些行的名称是LoggedInUser == User.Identity.Name,这是使用sysem的用户的名称。

现在我的INSERT查询从USER1表grepping所有行的每一行检查LoggedInUser如果匹配User.Identity.Name代替。

我应该如何修改我的插入语句?

+0

请编辑您的问题,并发布DDL和样例INSERT语句。 –

回答

1

我认为这是你在找什么:

nonqueryCommand.CommandText = 
"INSERT INTO UserCheck(UserID, Name, Issue 
    , LoggedInUser) 
SELECT user1.UserID, user1.Name, 'DUPLICATED user found in User1 List' 
    , '" + LoggedInUser + "' 
FROM UserDB AS user1 WHERE LoggedInUser LIKE '%" + LoggedInUser + "%' 
GROUP BY user1.UserID, user1.Name 
HAVING COUNT(*) > 1"; 

第一LoggedInUser是你User.Identity.Name,第二个是你的与loggedInUser列,我想你会明白的。

+0

非常感谢。 – user1084683