Probablemente una pregunta fácil de responder. Tengo este procedimiento:Cómo obtener el valor devuelto de un procedimiento almacenado
CREATE PROCEDURE [dbo].[AccountExists]
@UserName nvarchar(16)
AS
IF EXISTS (SELECT Id FROM Account WHERE [email protected])
SELECT 1
ELSE SELECT 0
Cuando tengo código de ADO.NET que llama a este procedimiento y hace esto: se devuelve
return Convert.ToBoolean(sproc.ExecuteScalar());
verdadera o falsa.
Cuando cambio el procedimiento almacenado para RETURN 1 o 0 en lugar de SELECT:
ALTER PROCEDURE [dbo].[AccountExists]
@UserName nvarchar(16)
AS
IF EXISTS (SELECT Id FROM Account WHERE [email protected])
RETURN 1
ELSE RETURN 0
sproc.ExecuteScalar() devuelve un valor nulo. Si pruebo sproc.ExecuteNonQuery() en su lugar, se devuelve -1.
¿Cómo obtengo el resultado de un procedimiento almacenado con un RETORNO en ADO.NET?
necesito AccountExists a RETURN en lugar de SELECT para que pueda tener otro procedimiento almacenado llamarlo:
--another procedure to insert or update account
DECLARE @exists bit
EXEC @exists = [dbo].[AccountExists] @UserName
IF @exists=1
--update account
ELSE
--insert acocunt
@Chris: El tema debe editarse para ser más específico. Desde el tema, la pregunta podría ser cualquier cosa que ver con T-SQL y ADO.NET. –
lol, eso fue involuntario. Mi atención debe haber sido desviada mientras escribo el tema. – core