Variables en Transact SQL

Declarar variables es Transact SQL

    Una variable es un valor identificado por un nombre (identificador) sobre el que podemos realizar modificaciones.

    En Transact SQL los identificadores de variables deben comenzar por el caracter @, es decir, el nombre de una variable debe comenzar por @. Para declarar variables en Transact SQL debemos utilizar la palabra clave declare, seguido del identificador y tipo de datos de la variable.


-- Esto es un comentario de linea simple


/*
Este es un comentario con varias líneas.
Conjunto de Lineas.
*/
declare @nombre varchar(50)-- declare declara una variable
-- @nombre es el identificador de la

-- variable de tipo varchar
set @nombre = 'www.devjoker.com' -- El signo = es un operador
-- www.devjoker.com es un literal
print @Nombre -- Imprime por pantalla el valor de @nombre.
-- No diferencia mayúsculas ni minúsculas

Asignar variables en Transact SQL

    En Transact SQL podemos asignar valores a una variable de varias formas:

  • A través de la instruncción set.
  • Utilizando una sentencia SELECT.
  • Realizando un FETCH de un cursor.

    El siguiente ejemplo muestra como asignar una variable utilizando la instrucción SET.


DECLARE
@nombre VARCHAR(100)

-- La consulta debe devolver un único registro

SET @nombre = (SELECT nombre

FROM CLIENTES

WHERE ID = 1)

PRINT @nombre

    El siguiente ejemplo muestra como asignar variables utilizando una sentencia SELECT.


DECLARE @nombre VARCHAR(100),

@apellido1 VARCHAR(100),

@apellido2 VARCHAR(100)

 

SELECT @nombre=nombre ,

@apellido1=Apellido1,

@apellido2=Apellido2

FROM CLIENTES

WHERE ID = 1

 

PRINT @nombre

PRINT @apellido1

PRINT @apellido2

    Un punto a tener en cuenta cuando asignamos variables de este modo, es que si la consulta SELECT devuelve más de un registro, las variables quedarán asignadas con los valores de la última fila devuelta.

    Por úlitmo veamos como asignar variables a través de un cursor.


DECLARE
@nombre VARCHAR(100),

@apellido1 VARCHAR(100),

@apellido2 VARCHAR(100)

 

DECLARE CDATOS CURSOR

FOR

SELECT nombre , Apellido1, Apellido2

FROM CLIENTES

 

OPEN CDATOS

FETCH CDATOS INTO @nombre, @apellido1, @apellido2

 

WHILE (@@FETCH_STATUS = 0)

BEGIN

PRINT @nombre

PRINT @apellido1

PRINT @apellido2

FETCH CDATOS INTO @nombre, @apellido1, @apellido2

END

 

CLOSE CDATOS

DEALLOCATE CDATOS

    Veremos los cursores con más detalle más adelante en este tutorial.

Pedro  Herrarte  Sánchez
Variables en Transact SQL
Pedro Herrarte Sánchez

Pedro Herrarte, es consultor independiente, ofreciendo servicios de consultoría, análisis, desarrollo y formación. Posee mas de diez años de experiencia trabajando para las principales empresas de España. Es especialista en tecnologías .NET, entornos Web (ASP.NET, ASP.NET MVC,jQuery, HTML5), bases de datos (SQL Server y ORACLE) e integración de sistemas. Es experto en desarrollo (C#, VB.Net, T-SQL, PL/SQL, , ASP, CGI , C, Pro*C, Java, Essbase, Vignette, PowerBuilder y Visual Basic ...) y bases de datos (SQL Server y ORACLE). Pedro es MCP y MAP 2012, es fundador, diseñador y programador de www.devjoker.com..
Fecha de alta:25/08/2007
Última actualizacion:25/08/2007
Visitas totales:211726
Valorar el contenido:
Últimas consultas realizadas en los foros
Últimas preguntas sin contestar en los foros de devjoker.com