I am writing a stored procedure for SQL Server. I have a working version but I'm looking to optimize it a little bit if possible so that I don't need to waste two calls to the database.
Here is my version :
If Exists (Select * From webapi.dbo.Users Where Username=@Username)
Begin
Select * From webapi.dbo.Users Where Username=@Username
End
Else
Begin
Set @error_message = 'Username ' + @Username + ' does not exist.'
Raiserror (@error_message, 16, 1)
End
I want something like :
Set @User = (Select * From webapi.dbo.Users Where Username=@Username)
If Count(@User) =
Begin
Set @error_message = 'Username ' + @Username + ' does not exist.'
Raiserror (@error_message, 16, 1)
End
Else
Begin
return @User
End
Is this possible or a smart thing to do? I clearly make 2 of the same calls and would like to remove one of them in order to create the fastest possible system and for my own knowledge of SQL.
I Ended up using:
Select * From webapi.dbo.Users Where Username=@Username
If @@ROWCOUNT = 0
Begin
Set @error_message = 'Username ' + @Username + ' does not exist.'
Raiserror (@error_message, 16, 1)
End