Al fin después de tanto luchar pudimos encontrar la respuesta de este contratiempo que agunos lectores de este espacio han presentado. Si tienes algún detalle que aportar no dejes de dejar tu comentario.
Solución:
Los valores de columna de la instrucción SELECT se asignan a @low
y @day
variables locales; el @adjustedLow
el valor no se asigna a ninguna variable y causa el problema:
El problema esta aqui:
select
top 1 @low = low
, @day = day
, @adjustedLow -- causes error!
--select high
from
securityquote sq
...
Explicación detallada y solución alternativa: Mensajes de error de SQL Server – Msg 141 – Una instrucción SELECT que asigna un valor a una variable no debe combinarse con operaciones de recuperación de datos.
No puede usar una instrucción de selección que asigne valores a las variables para devolver también datos al usuario. El siguiente código funcionará bien, porque he declarado 1 variable local y esa variable se usa en la instrucción de selección.
Begin
DECLARE @name nvarchar(max)
select @name=PolicyHolderName from Table
select @name
END
El siguiente código arrojará el error “Una instrucción SELECT que asigna un valor a una variable no debe combinarse con operaciones de recuperación de datos” Porque estamos recuperando datos (PolicyHolderAddress) de la tabla, pero el error dice que la operación de recuperación de datos no está permitida cuando usted use alguna variable local como parte de la instrucción select.
Begin
DECLARE @name nvarchar(max)
select
@name = PolicyHolderName,
PolicyHolderAddress
from Table
END
El código anterior se puede corregir como a continuación,
Begin
DECLARE @name nvarchar(max)
DECLARE @address varchar(100)
select
@name = PolicyHolderName,
@address = PolicyHolderAddress
from Table
END
Por lo tanto, elimine la operación de recuperación de datos o agregue una variable local adicional. Esto resolverá el error.
Te mostramos las comentarios y valoraciones de los usuarios
Eres capaz de ayudar nuestra ocupación escribiendo un comentario o dejando una valoración te damos las gracias.