Instead of Using
exec(@SqlQuery)
Use this:
execute sp_executesql @sqlQuery, N'@EMAIL VARCHAR(MAX) OUTPUT', @EMAIL = @EMAIL output;
ALTER PROCEDURE [dbo].[LoginProcedure]
@Username VARCHAR(50),
@password VARCHAR(50),
@Client varchar(50),
@Response varchar(max) out
AS
Declare @Client_ID int, @Client_Name varchar(100);
declare @sqlQuery varchar(MAX),@EMAIL VARCHAR(MAX)
declare @NewDB varchar(MAX),@UserEmail varchar(100)
BEGIN TRY
Select @Client_ID=Client_ID,@Client_Name=Client_Name FROM Client_Master WHERE Client_Alias= @Client or Client_Name=@Client;
IF @Client_ID is null
SET @Response='Invalid Client Name'
ELSE
BEGIN
SET @NewDB=Replace(@Client_Name,' ','_')+'_database';
set @NewDB='['+@NewDB+'].dbo.User_Master';
SET @EMAIL='User_Email'
set @sqlQuery='select '+@EMAIL+' AS COL1 from '+ @NewDB+' where User_Name=''admin''';
Execute sp_executesql @sqlQuery, N'@EMAIL VARCHAR(MAX) OUTPUT', @EMAIL = @EMAIL output;
If @EMAIL='admin@gmail.com'
SET @Response = 'success'+@EMAIL;
Else
SET @EMAIL = 'UNsuccess'+@EMAIL;
END
END TRY
BEGIN CATCH
SELECT ERROR_NUMBER() AS ErrorNumber,ERROR_MESSAGE() as ERRORMSG
END CATCH
Hope this Helps...