ESTRUCTURAS DE PROGRAMACION TRANSACT SQLBARBARA PAREDES
SQL es un lenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación. No permite el uso de variables, estructuras de control de flujo, bucles ... y demás elementos caracteristicos de la programación. No es de extrañar, SQL es un lenguaje de consulta, no un lenguaje de programación.Transact SQL es el lenguaje de programación que proporciona Microsoft SQL Server para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes de programación . Con Transact SQL vamos a poder programar las unidades de programa de la base de datos SQL Server, están son:Procedimientos almacenadosFuncionesTriggersScripts
Estructura condicional IFLa estuctura condicional IF permite evaluar una expresión booleana (resultado SI - NO), y ejecutar las operaciones contenidas en el bloque formado por BEGIN END.Estructura condicional CASE     La estructura condicional CASE permite evaluar una expresión y devolver un valor u otro.Estructura GOTOLa sentencia go0to nos permite desviar el flujo de ejecución hacia una etiqueta. Actualmente, se desaconseja el uso GOTO, recomendándose el uso de TRY - CATCH para la gestión de errores.
Procedimientos almacenados en Transact SQLUn procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones especificas.  Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código. En Transact SQL los procedimientos almacenados pueden devolver valores (numéricos enteros) o conjuntos de resultados.
create procedure calcula_pago @nroint asdeclare @pagomoney,@lineamoney,@dni char(8),@tipo_ejevarchar(5),@tipo_tarvarchar(8)select @linea=linea_credito from transacciones where nro=@nroselect @dni=ejecutivo from transacciones where nro=@nroselect @tipo_eje=tipo from ejecutivo where dni=@dniselect @tipo_tar=tipo_tarjeta from transacciones where nro=@nroif @tipo_eje='CAMPO'begin if @tipo_tar='VISA'begin if @linea<1000select @pago=25 else if @linea<2500select @pago=50
else select @pago=80end  if @tipo_tar='MASTER'begin if @linea<800select @pago=20 else if @linea<2000select @pago=60else select @pago=85endif @tipo_tar='AMERICAN'begin
if @linea<1200select @pago=50 else if @linea>=1200 and @linea<2500select @pago=100else select @pago=160endendelse beginif @tipo_tar='VISA'begin if @linea<1000select @pago=20 else if @linea>=1000 and @linea<2500select @pago=40
else select @pago=70end  if @tipo_tar='MASTER'begin if @linea<800select @pago=15 else if @linea>=800 and @linea<2000select @pago=55else select @pago=80endif @tipo_tar='AMERICAN'begin
if @linea<1200select @pago=45 else if @linea>=1200 and @linea<2500select @pago=90else select @pago=150endend  update transacciones setpago=@pagowhere nro=@nroexecute calcula_pago '2'

Procedimientos almacenados

  • 1.
    ESTRUCTURAS DE PROGRAMACIONTRANSACT SQLBARBARA PAREDES
  • 2.
    SQL es unlenguaje de consulta para los sistemas de bases de datos relaciónales, pero que no posee la potencia de los lenguajes de programación. No permite el uso de variables, estructuras de control de flujo, bucles ... y demás elementos caracteristicos de la programación. No es de extrañar, SQL es un lenguaje de consulta, no un lenguaje de programación.Transact SQL es el lenguaje de programación que proporciona Microsoft SQL Server para extender el SQL estándar con otro tipo de instrucciones y elementos propios de los lenguajes de programación . Con Transact SQL vamos a poder programar las unidades de programa de la base de datos SQL Server, están son:Procedimientos almacenadosFuncionesTriggersScripts
  • 3.
    Estructura condicional IFLaestuctura condicional IF permite evaluar una expresión booleana (resultado SI - NO), y ejecutar las operaciones contenidas en el bloque formado por BEGIN END.Estructura condicional CASE La estructura condicional CASE permite evaluar una expresión y devolver un valor u otro.Estructura GOTOLa sentencia go0to nos permite desviar el flujo de ejecución hacia una etiqueta. Actualmente, se desaconseja el uso GOTO, recomendándose el uso de TRY - CATCH para la gestión de errores.
  • 4.
    Procedimientos almacenados enTransact SQLUn procedimiento es un programa dentro de la base de datos que ejecuta una acción o conjunto de acciones especificas. Un procedimiento tiene un nombre, un conjunto de parámetros (opcional) y un bloque de código. En Transact SQL los procedimientos almacenados pueden devolver valores (numéricos enteros) o conjuntos de resultados.
  • 5.
    create procedure calcula_pago@nroint asdeclare @pagomoney,@lineamoney,@dni char(8),@tipo_ejevarchar(5),@tipo_tarvarchar(8)select @linea=linea_credito from transacciones where nro=@nroselect @dni=ejecutivo from transacciones where nro=@nroselect @tipo_eje=tipo from ejecutivo where dni=@dniselect @tipo_tar=tipo_tarjeta from transacciones where nro=@nroif @tipo_eje='CAMPO'begin if @tipo_tar='VISA'begin if @linea<1000select @pago=25 else if @linea<2500select @pago=50
  • 6.
    else select @pago=80end if @tipo_tar='MASTER'begin if @linea<800select @pago=20 else if @linea<2000select @pago=60else select @pago=85endif @tipo_tar='AMERICAN'begin
  • 7.
    if @linea<1200select @pago=50else if @linea>=1200 and @linea<2500select @pago=100else select @pago=160endendelse beginif @tipo_tar='VISA'begin if @linea<1000select @pago=20 else if @linea>=1000 and @linea<2500select @pago=40
  • 8.
    else select @pago=70end if @tipo_tar='MASTER'begin if @linea<800select @pago=15 else if @linea>=800 and @linea<2000select @pago=55else select @pago=80endif @tipo_tar='AMERICAN'begin
  • 9.
    if @linea<1200select @pago=45else if @linea>=1200 and @linea<2500select @pago=90else select @pago=150endend update transacciones setpago=@pagowhere nro=@nroexecute calcula_pago '2'