Please start any new threads on our new
site at https://forums.sqlteam.com. We've got lots of great SQL Server
experts to answer whatever question you can come up with.
Author |
Topic |
eljapo4
Posting Yak Master
100 Posts |
Posted - 2015-04-28 : 09:44:32
|
Hi Guys, I'm working with the following query to try and determine if a user already exists in a DB before adding a new user.SELECT COUNT (*) AS ENTITY_COUNTFROM ORG_ENTITY INNER JOIN ORG_ENTITY_TYPE ON ORG_ENTITY.N_TYPE_ID = ORG_ENTITY_TYPE.N_TYPE_ID LEFT OUTER JOIN E_MAIL ON ORG_ENTITY.N_ORG_ENTY_ID = E_MAIL.N_ORG_ENTY_IDWHERE (ORG_ENTITY.M_ORG_FIRST = 'paul' AND ORG_ENTITY.M_ORG_LAST = 'test')OR ORG_ENTITY.N_USER_ID = 'TST1' the thing is there could be an existing DB record with the same name but the new user to be added may have a different N_USER_ID in which case I want to reject the new entry. But if the name is the same and the N_USER_ID already exist then I want to reject the new entry. I'm returning an Int from my query. Can someone enlighten on how to do this in SQL please? |
|
gbritton
Master Smack Fu Yak Hacker
2780 Posts |
Posted - 2015-04-28 : 10:32:52
|
How is N_USER_ID assigned? The thing is, with the query you posted, You will return 0 if there is no row for "paul test" and also no row where the userid is "TST1". However, since logically you would never have duplicate user ids (otherwise you have bigger problems than this), it would be enough to test the userid. Put another way, if there IS a userid "TST1", you don't care what the name is. |
|
|
eljapo4
Posting Yak Master
100 Posts |
Posted - 2015-04-28 : 10:37:22
|
Returning 0 is fine as that means the new entry the user is trying to add can be added as no duplicate exists. The USERID will always be unique (it's based on a company NTID) but there could be 2 persons with the same name but they'd have a different USERID. So I suppose what you're saying here could be right - "if there IS a userid "TST1", you don't care what the name is." |
|
|
Kristen
Test
22859 Posts |
Posted - 2015-04-28 : 16:58:43
|
Might perform better to use EXISTS rather than COUNT(*) |
|
|
|
|
|