Error

29/12/2004 - 14:21 por AJL | Informe spam
El Store que arme ... me da el siguente error ...
aparentemente solo funciona una vez

Servidor: mensaje 512, nivel 16, estado 1, línea 1
Subquery returned more than 1 value. This is not permitted
when the subquery follows =, !=, <, <= , >, >= or when the
subquery is used as an expression.
EL ENCABEZADO ES:219
EL ENCABEZADO (OUTPUT) ES:-6

alguien sabe porque??

USE delphos2
GO
DROP PROCEDURE EncE_Retorno --BORRO EL PROCEDIMIENTO
GO
CREATE PROCEDURE EncE_Retorno @id_enc char(20)
OUTPUT as
SET NOCOUNT ON --Hace que deje de
devolverse como parte de los resultados el mensaje que
indica el número de filas afectado por una instrucción
Transact-SQL.

-
SELECT @id_enc = Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998'
RETURN(SELECT Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998')
go

DECLARE @Encabezados char(20)
DECLARE @ReNCABEZADO CHAR(20)
exec @Encabezados = EncE_Retorno @id_enc
= @ReNCABEZADO OUTPUT

PRINT 'EL ENCABEZADO ES:' + CONVERT( CHAR
(12), @ReNCABEZADO) ''' IMPRIMO EL RETORNO
PRINT 'EL ENCABEZADO (OUTPUT) ES:' +
CONVERT(CHAR(12), @Encabezados)
GO
SET NOCOUNT OFF --OFF no se devuelve el
número
go

Preguntas similare

Leer las respuestas

#1 Carlos Sacristán
29/12/2004 - 14:40 | Informe spam
No te recomiendo usar el valor de retorno de un procedimiento almacenado
para devolver valores de un campo de una tabla, sino más bien como un flag
de cómo ha finalizado su ejecución (0 significa que todo ha ido bien
mientras que un valor diferente indica algún tipo de error)

Ese mensaje te lo muestra porque la instrucción

SELECT Id_Encabezado_del_estudio FROM FlagsDenominacion WHERE Id_Estudio
= '99998'

devuelve más de una fila, lo que hace que sea imposible de usar por
RETURN. Si necesitas devolver el valor de ese campo, puedes usar parámetros
de salida (OUTPUT).


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"AJL" escribió en el mensaje
news:0e3b01c4eda9$4e64c7a0$
El Store que arme ... me da el siguente error ...
aparentemente solo funciona una vez

Servidor: mensaje 512, nivel 16, estado 1, línea 1
Subquery returned more than 1 value. This is not permitted
when the subquery follows =, !=, <, <= , >, >= or when the
subquery is used as an expression.
EL ENCABEZADO ES:219
EL ENCABEZADO (OUTPUT) ES:-6

alguien sabe porque??

USE delphos2
GO
DROP PROCEDURE EncE_Retorno --BORRO EL PROCEDIMIENTO
GO
CREATE PROCEDURE EncE_Retorno @id_enc char(20)
OUTPUT as
SET NOCOUNT ON --Hace que deje de
devolverse como parte de los resultados el mensaje que
indica el número de filas afectado por una instrucción
Transact-SQL.

-
SELECT @id_enc = Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998'
RETURN(SELECT Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998')
go

DECLARE @Encabezados char(20)
DECLARE @ReNCABEZADO CHAR(20)
exec @Encabezados = EncE_Retorno @id_enc
= @ReNCABEZADO OUTPUT

PRINT 'EL ENCABEZADO ES:' + CONVERT( CHAR
(12), @ReNCABEZADO) ''' IMPRIMO EL RETORNO
PRINT 'EL ENCABEZADO (OUTPUT) ES:' +
CONVERT(CHAR(12), @Encabezados)
GO
SET NOCOUNT OFF --OFF no se devuelve el
número
go
Respuesta Responder a este mensaje
#2 Tinoco
29/12/2004 - 14:57 | Informe spam
Hola AJL,

Creo que tienes problemas con el RETURN, esta devolviendo mas de un
registro???. Podrias utilizar un Distinct o mejorar el WHERE del select.

RETURN(SELECT Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998')

Espero haberte ayudado.

Tinoco.

"AJL" wrote:

El Store que arme ... me da el siguente error ...
aparentemente solo funciona una vez

Servidor: mensaje 512, nivel 16, estado 1, línea 1
Subquery returned more than 1 value. This is not permitted
when the subquery follows =, !=, <, <= , >, >= or when the
subquery is used as an expression.
EL ENCABEZADO ES:219
EL ENCABEZADO (OUTPUT) ES:-6

alguien sabe porque??

USE delphos2
GO
DROP PROCEDURE EncE_Retorno --BORRO EL PROCEDIMIENTO
GO
CREATE PROCEDURE EncE_Retorno @id_enc char(20)
OUTPUT as
SET NOCOUNT ON --Hace que deje de
devolverse como parte de los resultados el mensaje que
indica el número de filas afectado por una instrucción
Transact-SQL.

-
SELECT @id_enc = Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998'
RETURN(SELECT Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998')
go

DECLARE @Encabezados char(20)
DECLARE @ReNCABEZADO CHAR(20)
exec @Encabezados = EncE_Retorno @id_enc
= @ReNCABEZADO OUTPUT

PRINT 'EL ENCABEZADO ES:' + CONVERT( CHAR
(12), @ReNCABEZADO) ''' IMPRIMO EL RETORNO
PRINT 'EL ENCABEZADO (OUTPUT) ES:' +
CONVERT(CHAR(12), @Encabezados)
GO
SET NOCOUNT OFF --OFF no se devuelve el
número
go

Respuesta Responder a este mensaje
#3 AJL
29/12/2004 - 15:13 | Informe spam
Mil Gracias!!!
No te recomiendo usar el valor de retorno de un


procedimiento almacenado
para devolver valores de un campo de una tabla, sino más


bien como un flag
de cómo ha finalizado su ejecución (0 significa que todo


ha ido bien
mientras que un valor diferente indica algún tipo de


error)

Ese mensaje te lo muestra porque la instrucción

SELECT Id_Encabezado_del_estudio FROM


FlagsDenominacion WHERE Id_Estudio
= '99998'

devuelve más de una fila, lo que hace que sea


imposible de usar por
RETURN. Si necesitas devolver el valor de ese campo,


puedes usar parámetros
de salida (OUTPUT).


Un saludo

-
"Sólo sé que no sé nada. " (Sócrates)

"AJL" escribió en


el mensaje
news:0e3b01c4eda9$4e64c7a0$
El Store que arme ... me da el siguente error ...
aparentemente solo funciona una vez

Servidor: mensaje 512, nivel 16, estado 1, línea 1
Subquery returned more than 1 value. This is not permitted
when the subquery follows =, !=, <, <= , >, >= or when the
subquery is used as an expression.
EL ENCABEZADO ES:219
EL ENCABEZADO (OUTPUT) ES:-6

alguien sabe porque??

-


-
USE delphos2
GO
DROP PROCEDURE EncE_Retorno --BORRO EL PROCEDIMIENTO
GO
CREATE PROCEDURE EncE_Retorno @id_enc char(20)
OUTPUT as
SET NOCOUNT ON --Hace que deje de
devolverse como parte de los resultados el mensaje que
indica el número de filas afectado por una instrucción
Transact-SQL.

-
SELECT @id_enc = Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998'
RETURN(SELECT Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998')
go

DECLARE @Encabezados char(20)
DECLARE @ReNCABEZADO CHAR(20)
exec @Encabezados = EncE_Retorno @id_enc
= @ReNCABEZADO OUTPUT

PRINT 'EL ENCABEZADO ES:' + CONVERT( CHAR
(12), @ReNCABEZADO) ''' IMPRIMO EL RETORNO
PRINT 'EL ENCABEZADO (OUTPUT) ES:' +
CONVERT(CHAR(12), @Encabezados)
GO
SET NOCOUNT OFF --OFF no se devuelve el
número
go


.

Respuesta Responder a este mensaje
#4 AJL
29/12/2004 - 15:13 | Informe spam
Gracias por la respuesta!
Hola AJL,

Creo que tienes problemas con el RETURN, esta devolviendo


mas de un
registro???. Podrias utilizar un Distinct o mejorar el


WHERE del select.

RETURN(SELECT Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998')

Espero haberte ayudado.

Tinoco.

"AJL" wrote:

El Store que arme ... me da el siguente error ...
aparentemente solo funciona una vez

Servidor: mensaje 512, nivel 16, estado 1, là­nea 1
Subquery returned more than 1 value. This is not




permitted
when the subquery follows =, !=, <, <= , >, >= or when




the
subquery is used as an expression.
EL ENCABEZADO ES:219
EL ENCABEZADO (OUTPUT) ES:-6

alguien sabe porque??


USE delphos2
GO
DROP PROCEDURE EncE_Retorno --BORRO EL PROCEDIMIENTO
GO
CREATE PROCEDURE EncE_Retorno @id_enc char(20)
OUTPUT as
SET NOCOUNT ON --Hace que deje de
devolverse como parte de los resultados el mensaje que
indica el nàºmero de filas afectado por una




instrucción
Transact-SQL.

-
SELECT @id_enc = Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998'
RETURN(SELECT Id_Encabezado_del_estudio
FROM FlagsDenominacion WHERE Id_Estudio = '99998')
go

DECLARE @Encabezados char(20)
DECLARE @ReNCABEZADO CHAR(20)
exec @Encabezados = EncE_Retorno @id_enc
= @ReNCABEZADO OUTPUT

PRINT 'EL ENCABEZADO ES:' + CONVERT( CHAR
(12), @ReNCABEZADO) ''' IMPRIMO EL RETORNO
PRINT 'EL ENCABEZADO (OUTPUT) ES:' +
CONVERT(CHAR(12), @Encabezados)
GO
SET NOCOUNT OFF --OFF no se devuelve el
nàºmero
go



.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida