Вы находитесь на странице: 1из 6

SCRIPT EN TRANSACT-SQL DE SQL SERVER

VARIABLES EN T-SQL
Definicin Son valores que se identifican con un Nombre, denominados Identificadores; sobre los que se pueden realizar modificaciones. Sintaxis DECLARE {@VariableLocal tipoDatos}[, n] SET @NombreVariableLocal = Expresin Ejemplo: DECLARE @Nombre varchar(50) SET @Nombre = www.microsoft.com/sql PRINT @Nombre Asignacin de Variables utilizando SET Use NorthWind Go DECLARE @Apellidos varchar(50) SET @Apellidos = (select LastName From Employees Where EmployeeID= 4) PRINT @Apellidos Go Asignacin de Variables utilizando SELECT Use NorthWind Go DECLARE @Nombre varchar(50), @Apellidos varchar(50) SELECT @Nombre=FirstName, @Apellidos=LastName From Employees Where EmployeeID=4 PRINT 'Nombre: ' + @Nombre PRINT 'Apellido: ' + @Apellidos Go Resultado:

MG. Luis Boy Chavil

Pgina 1

SCRIPT EN TRANSACT-SQL DE SQL SERVER


Asignacin de Variables utilizando CURSORES

Use NorthWind Go DECLARE @Nombre varchar(50), @Apellidos varchar(50) DECLARE CDATOS CURSOR for Select FirstName, LastName From Employees OPEN CDATOS FETCH CDATOS INTO @Nombre, @Apellidos While (@@FETCH_STATUS = 0) Begin Print 'Nombre: ' + @Nombre Print 'Apellidos: ' + @Apellidos Print ' ' FETCH CDATOS INTO @Nombre, @Apellidos End CLOSE CDATOS DEALLOCATE CDATOS Go OPERADORES T-SQL TIPO Aritmtico Relacionales Lgicos Concatenacin ALL ANY BETWEEN OPERADOR +, -, *, /, **, % =, <>, !=, <, >, <=, >=, !<, !> and, not, or, &, |, ^ (and, or y xor a nivel de bit) + Devuelve TRUE si el conjunto de comparaciones es TRUE
Devuelve TRUE si cualquier elemento del conjunto de comparaciones es TRUE

LIKE NOT SOME

Devuelve TRUE si el operando est dentro del intervalo EXISTS es TRUE si una sub consulta contiene filas IN es TRUE si el operando est en la lista Es TRUE si el operando coincide con un patron Invierte el valor de cualquier operando booleano
Devuelve TRUE si alguna de las comparaciones de un conjunto es TRUE

MG. Luis Boy Chavil

Pgina 2

SCRIPT EN TRANSACT-SQL DE SQL SERVER

ESTRUCTURAS DE CONTROL
1. Estructura Condicional IF IF (<Expresin Booleana>) Begin . Bloque de Sentencias . End ELSE IF(<Expresin Booleana>) Begin . Bloque de Sentencias . End ELSE Begin . Bloque de Sentencias . End Ejemplo Use NorthWind Go create table Paises (PAI_codigo int not null, PAI_nombre varchar(50) Null) Go Insert Into Paises Values(1, 'Per') Insert Into Paises Values(2, 'Brasil') Insert Into Paises Values(3, 'Uruguay') Go -- Si Cdigo de Pas existe; Se actualizar el Nombre; de lo contrario se Agregar el nuevo Pas DECLARE @CodPais int, @Nombre varchar(50) SET @CodPais = 4 SET @Nombre = 'Bolivia' IF EXISTS(select * from Paises where PAI_codigo = @CodPais) Begin UPDATE Paises SET PAI_codigo = @Nombre Where PAI_codigo = @CodPais End
MG. Luis Boy Chavil Pgina 3

SCRIPT EN TRANSACT-SQL DE SQL SERVER ELSE Begin Insert Into Paises Values(@CodPais, @Nombre) End Go select * from Paises 2. Estructura Condicional CASE CASE <Expresin> WHEN <Valor Expresin> THEN <Valor devuelto> WHEN <Valor Expresin> THEN <Valor devuelto> ELSE <Valor devuelto por defecto> END Ejemplo: Use Northwind Go select ProductID, Categora = CASE CategoryID WHEN 1 then 'Bebidas' WHEN 2 then 'Condimentos' WHEN 3 then 'Confecciones' WHEN 4 then 'Productos Lteos' WHEN 5 then 'Granos y Cereales' WHEN 6 then 'Carne y Aves' WHEN 7 then 'Producir' WHEN 8 then 'Mariscos' ELSE 'No Encontrado' END, ProductName as Productos from Products order by ProductID Go 3. Estructura de control WHILE WHILE <Expresin Booleana> {Bloque de sentencias} [BREAK] {Bloque de sentencias} [CONTINUE] {Bloque de sentencias} NOTA: Los bloques de sentencias van entre Begin y End BREAK: Produce la salida del bucle WHILE ms interno CONTINUE: Reinicia el bucle WHILE y omite las dems instrucciones despues de CONTINUE.
MG. Luis Boy Chavil Pgina 4

SCRIPT EN TRANSACT-SQL DE SQL SERVER Ejemplo:

-- 1. Mostrar los Nmeros Impares entre 1 y 10 DECLARE @Numero int SET @Numero = 1 WHILE (@Numero <= 10) BEGIN IF (@Numero % 2 <> 0) PRINT 'Nmero Impar generado: ' + cast(@Numero AS Varchar) SET @Numero = @Numero + 1 END Go -- 2. Aumentar 2.5 a los precios de los Productos, siempre y cuando el promedio -- de esos precios sea menor a 30 Use Northwind Go WHILE (Select AVG(UnitPrice) from Products) < 30 BEGIN UPDATE Products SET UnitPrice = UnitPrice + 2.5 END Select UnitPrice from Products
4.

Control de Errores en T-SQL con TRY CATCH

Para el conjunto de sentencias del bloque TRY; se evala si se producen errores en cuyo caso el control se transfiere a otro conjunto de sentencias dentro de un bloque CATCH. BEGIN TRY <Sentencias de T-SQL> END TRY BEGIN CATCH <Sentencias de T-SQL>

END CATCH Ejemplo:


-- 1. Mostrar un mensaje cuando se detecte un Error BEGIN TRY DECLARE @Numerador int, @Denominador int, @Resultado int SET @Numerador = 25 SET @Denominador = 0 -- Este valor se coloca para observar el error SET @Resultado = @Numerador / @Denominador PRINT 'Resultado : ' + cast(@Resultado AS Varchar) END TRY

MG. Luis Boy Chavil

Pgina 5

SCRIPT EN TRANSACT-SQL DE SQL SERVER BEGIN CATCH IF @@ERROR = 0 PRINT 'No hay Error ....' ELSE PRINT 'Error .... Divisin por 0' END CATCH

MG. Luis Boy Chavil

Pgina 6

Вам также может понравиться