Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
No las definimos
El servidor las mantiene por nosotros
@@identity
– Almacena el código interno de identificación de un
registro
– Almacena el último código de la última inserción
@@error
– 0 = No existe error
– Otro valor = Indica el código del error
@@rowcount
– Número de registros afectados en la última
sentencia.
Variables de tipo tabla
If
While
Break
Continue
GoTo
WaitFor
Sentencias de control de flujo
IF
Esta sentencia cambia el flujo de ejecución
If boolean_expression
{ Transact-SQL_statement | statement_block}
[else
{ Transact-SQL_statement | statement_block}]
El valor True=Cierto=Verdadero=1
El valor False=Falso=0
Si el valor es cierto ejecuta el primer bloque de
sentencias, sino el segundo
WHILE @@FETCH_STATUS = 0 Ejemplo
BEGIN
UPDATE MON_MONITOREO
SET CANTIDAD = isnull(CANTIDAD,0) + 1
WHERE CAMP_NOMBRE = @CAMPANA
--- AND CODEJECUTIVO = @CODEJEC
AND INDICE = @INDICE
IF @CORTIPOVTA = 'TIT'
BEGIN
UPDATE MON_MONITOREO
SET TITULAR = isnull(TITULAR,0) + 1
WHERE CAMP_NOMBRE = @CAMPANA
--- AND CODEJECUTIVO = @CODEJEC
AND INDICE = @INDICE
END
IF @CORTIPOVTA = 'ADI'
BEGIN
UPDATE MON_MONITOREO
SET ADICIONAL = isnull(ADICIONAL,0) + 1
WHERE CAMP_NOMBRE = @CAMPANA
--- AND CODEJECUTIVO = @CODEJEC
AND INDICE = @INDICE
END
While Boolean_expression
{sql_statement | statement_block}
[Break]
{sql_statement | statement_block}
[Continue]
{sql_statement | statement_block}
{Resto de instrucciones}
True = 1 False = 0
Break. El servidor interrumpe el bucle y salta a la siguiente
instrucción después del bucle. {Resto de instrucciones}
Continue. El servidor vuelve inmediatamente a la guarda
del bucle,
ignorando el resto de instrucciones por ejecutar después de la
sentencia continue. Boolean_expression
Sentencias de control de flujo
Ejemplo de la instrucción While
conjuntos de datos
Las aplicaciones de usuario estan
deseñadas para mostrar conjuntos
de datos por registros
Los cursores unen estos dos enfoques
Tenemos tres tipos de cursores en SQL
Server
– Client cursors
– API Server cursors
– Transact-SQL cursors
Cursores
Transact-SQL vs Resto de cursores
OPEN ventas
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE MON_MONITOREO
SET CANTIDAD = isnull(CANTIDAD,0) + 1
WHERE CAMP_NOMBRE = @CAMPANA
--- AND CODEJECUTIVO = @CODEJEC
AND INDICE = @INDICE
IF @CORTIPOVTA = 'TIT'
BEGIN
UPDATE MON_MONITOREO
SET TITULAR = isnull(TITULAR,0) + 1
WHERE CAMP_NOMBRE = @CAMPANA
--- AND CODEJECUTIVO = @CODEJEC
AND INDICE = @INDICE
END
IF @CORTIPOVTA = 'ADI'
BEGIN
UPDATE MON_MONITOREO
SET ADICIONAL = isnull(ADICIONAL,0) + 1
WHERE CAMP_NOMBRE = @CAMPANA
--- AND CODEJECUTIVO = @CODEJEC
AND INDICE = @INDICE
END
Otro Ejemplo
declare @nombre varchar(50)
declare @direccion varchar(100)
declare departamento_cursor cursor for
select nombre, direccion from departamento
open departamento_cursor
fetch next from departamento_cursor into @nombre, @direccion
while @@fetch_status = 0
begin
print(’Departamento de ’ + @nombre + ’, Direcci´on: ’ +
@direccion)
fetch next from departamento_cursor into @nombre,
@direccion
end
close departamento_cursor
deallocate departamento_cursor
Triggers