delete duplicate user record in sys_user table

rajesh kumar9
Tera Contributor

Hi

 I have requirement of first displaying duplicate user records who has same email id 

and deleting them which user has role (here duplicate is email id )

some users have same email id 

 

help me how to solve the duplicate records 

 

table : sys_user  field: email

1 ACCEPTED SOLUTION

Omkar Joshi
Giga Guru

Hi Rajesh,

 

Use the below script.

 

var user1=new GlideRecord('sys_user');
      user1.query();
while(user1.next())
{
       var user2=new GlideRecord('sys_user');
             user2.addEncodedQuery('email='+user1.email+'^sys_id!='+user1.sys_id);
             user2.query();
      while(user2.next())
     {
           user2.deleteRecord();
     }
}

View solution in original post

2 REPLIES 2

Omkar Joshi
Giga Guru

Hi Rajesh,

 

Use the below script.

 

var user1=new GlideRecord('sys_user');
      user1.query();
while(user1.next())
{
       var user2=new GlideRecord('sys_user');
             user2.addEncodedQuery('email='+user1.email+'^sys_id!='+user1.sys_id);
             user2.query();
      while(user2.next())
     {
           user2.deleteRecord();
     }
}

Mark Roethof
Tera Patron
Tera Patron

Hi there,

Before deleting, double check if the records to be deleted haven't been used / referenced / etc anywhere. Else you might end up losing data, data corruption, having reference fields looking empty or displaying sys_ids, etc..

Also, do you know the rootcause of why these records are double? Make sure this won't and can't happen again in the future.

If my answer helped you in any way, please then mark it as helpful.

Kind regards,
Mark

---

LinkedIn
Community article list

 

Kind regards,

 

Mark Roethof

Independent ServiceNow Consultant

10x ServiceNow MVP

---

 

~444 Articles, Blogs, Videos, Podcasts, Share projects - Experiences from the field

LinkedIn