SQL Server - Asignación variables con Select

 
Vista:

Asignación variables con Select

Publicado por Eduardo (1 intervención) el 28/01/2011 07:42:58
En el ejemplo siguiente:

SET @nombre = (SELECT nombre
FROM CLIENTES
WHERE ID = 1)

Que valor toma la variable si la consulta no devuelve ningun registro? @nombre=NULL??
Cual es la mejor manera de interceptar un posible error?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

RE:Asignación variables con Select

Publicado por Juan Manuel Cruz (59 intervenciones) el 28/01/2011 11:41:31
Devolverá un NULL.

Podrías agregar una línea posterior:

set @nombre= isnull( @nombre, '' )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

RE:Asignación variables con Select

Publicado por Isaias (4558 intervenciones) el 28/01/2011 19:05:21
La asignacion de valores a una variable en un SELECT, se debe hacer de forma directa:

SELECT @mivar = micampo FROM .........................................

Si el WHERE o filtro, devuelve mas de un registro o valor, te enviara un mensaje de error, en cuyo caso tendras que revisar y si el valor es NULL, entonces utliza la funcion ISNULL

SELECT @mivar = ISNULL(micampo, 0) FROM .........................................

En el ejemplo, pondra un CERO, si el valor es NULL
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Asignación variables con Select

Publicado por Sterling (1 intervención) el 11/04/2011 23:49:49
Me gustaria hacer que un campo no permita que se ingresen valores mas altos que otro campo de otra tabla. Cual es la mejor herramienta para hacerlo?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar