Buenas tardes queridos lectores, en esta ocasión trataremos
el tema de las variables en SQL Server, como declararlas y como asignarles
valor. Vamos a ver algunos ejemplos como siempre.
SQL SERVER solo cuenta con un operador universal para la
asignación de valores. El operador igual (=) se tendrá que colocar en cualquier
expresión que necesite asignar un valor de cualquier tipo.
Ejemplo 1: Script
que permita asignar el valor de PI=3.1415 a una variable.
Solución con SELECT:
DECLARE @PI
FLOAT
SET @PI=3.1415
SELECT @PI
AS [VALOR PI]
GO
En el script se declara una variable de tipo float, cada vez que se declara una
variable a nivel TRANSACT-SQL debe añadirle una arroba (@) al iniciar su
declaración seguidamente se declara como float
porque el valor a almacenar es decimal.
En la segunda línea se le asigna el valor 3.1415 a la
variable @PI, dentro de TRANSACT-SQL la asignación se realiza con SET. La impresión de la variable con la
sentencia SELECT se tiene que realizar con el mismo símbolo con el que se
declaró, es decir, el arroba (@) no debe despegarse de dicha variable, tenga en
cuenta que si no se coloca este operador la sentencia SELECT asumirá que PI sin
arroba es la columna de alguna tabla.
Solución con PRINT:
DECLARE @PI
FLOAT
SET @PI=3.1415
PRINT 'EL VALOR DE PI ES: '+LTRIM(CAST(@PI AS FLOAT))
GO
En el script con PRINT ocurre un desperfecto al momento de
imprimir el valor de la variable @PI, si usamos la función STR como en los
ejercicios anteriores ocurriría que la respuesta no tomaría en cuenta los
decimales, es decir, el resultado sería 3. En este caso se tiene que usar una función
especializada en conversiones como lo es CAST que permite convertir a un tipo
específico de datos, más adelante, veremos a detalle dicha función.
Ejemplo 2: Script
que permita capturar en una variable al correo electrónico del pasajero con
código P0004. Usando variables TRANSACT-SQL, PRINT y SELECT para la impresión
del correo.
Solución con PRINT
DECLARE
@CORREO VARCHAR(50)
SELECT
@CORREO=EMAIL
FROM
PASAJERO
WHERE
IDPASAJERO = 'P0004'
PRINT 'EL EMAIL DEL PASAJERO CON CODIGO P0004 ES: >>' + @CORREO
GO
En script se declara una variable de tipo VARCHAR(50) para
poder almacenar el correo electrónico del pasajero, ahora la sentencia SELECT
se comportará como asignador del valor, es decir, dará valor a la variable
@CORREO hay que tener en cuenta que la sentencia SELECT debe emitir un solo
valor puesto que si la consulta se implementa mal y devolviera varios registros
la variable no lo soportará, ya que solo permite asignar valores VARCHAR.
Para lograr esta capacidad, se tendrá que condicionar la
consulta y así asegurar que se le asigne un solo valor a la variable, esto es
gracias a la clausula WHERE condicionando que el código a buscar sea
exactamente P0004 sabiendo que por ser columna con llave no permitirá
duplicidad de valores.
La mejor manera de emitir la respuesta es haciendo uso de la
función PRINT por eso se muestra como primera solución al caso. Aquí considere
que no se convierte la variable @CORREO por ser una variable de tipo cadena.
Solución con SELECT:
DECLARE
@CORREO VARCHAR(50)
SELECT
@CORREO=EMAIL
FROM
PASAJERO
WHERE
IDPASAJERO='P0004'
SELECT 'P0004' AS
[IDPASAJERO],
@CORREO AS
EMAIL
GO
En este script se invoca a otra sentencia SELECT, la primera
asignara el correo a la variable @CORREO y el segundo mostrará en pantalla el
resultado.
Hasta aquí el post de las variables en SQL Server, como verán, ésto solo fue una introducción, seguiremos con mas ejemplos mas avanzados en las siguientes entradas, les deseo un FELIZ AÑO NUEVO 2016, si les gustó el post por favor compartan, den +1 o clic en algún anuncio que les agrade.
Muchas gracias por haberme seguido ya casi un año.
Dios los bendiga
No hay comentarios.:
Publicar un comentario