Programacion

Páginas: 11 (2610 palabras) Publicado: 5 de mayo de 2012
Funciones

Tipos de Funciones
• SQL Server ofrece varios tipos de funciones para
realizar distintas operaciones. Hemos visto y empleado
varias de ellas.
• Se pueden emplear las funciones del sistema en
cualquier lugar en el que se permita una expresión en
una sentencia "select".
• Las funciones pueden clasificarse en:
• - deterministicas: siempre retornan el mismo resultado
si se lasinvoca enviando el mismo valor de entrada.
Todas las funciones de agregado y string son
deterministicas, excepto "charindex" y "patindex".

• - no determinísticas: pueden retornar distintos
resultados cada vez que se invocan con el
mismo valor de entrada. Las siguientes son
algunas de las funciones no deterministicas:
getdate, datename, textptr, textvalid, rand.
Todas las funciones deconfiguración, cursor,
meta data, seguridad y estadísticas del
sistema son no determinísticas.

• SQL Server provee muchas funciones y además permite
que el usuario pueda definir sus propias funciones.
• Sabemos que una función es un conjunto de sentencias
que operan como una unidad lógica, una rutina que
retorna un valor. Una función tiene un nombre, acepta
parámetros de entrada y retornaun valor escalar o una
tabla.
• Los parámetros de entrada pueden ser de cualquier
tipo, excepto timestamp, cursor y table.
• Las funciones definidas por el usuario no permiten
parámetros de salida.

Restricciones
• No todas las sentencias SQL son válidas dentro de una
función. NO es posible emplear en ellas funciones no
determinadas (como getdate()) ni sentencias de
modificación oactualización de tablas o vistas. Si podemos
emplear sentencias de asignación, de control de flujo (if),
de modificación y eliminación de variables locales.
• SQL Server admite 3 tipos de funciones definidas por el
usuario clasificadas según el valor retornado:
• 1) escalares: retornan un valor escalar;
• 2) de tabla de varias instrucciones (retornan una tabla) y
• 3) de tabla en línea(retornan una tabla).
• Las funciones definidas por el usuario se crean con la
instrucción "create function" y se eliminan con "drop
function".

Eliminar una función
• Las funciones definidas por el usuario se eliminan con la instrucción
"drop function":
Sintaxis:
• drop function NOMBREPPROPIETARIO.NOMBREFUNCION; Se coloca
el nombre del propietario seguido del nombre de la función.
• Si lafunción que se intenta eliminar no existe, aparece un mensaje
indicándolo, para evitarlo, podemos verificar su existencia antes de
solicitar su eliminación (como con cualquier otro objeto):
• if object_id('NOMBREPROPIETARIO.NOMBREFUNCION') is not null
drop function NOMBREPROPIETARIO.NOMBREFUNCION;
Eliminamos, si existe, la función denominada "f_fechacadena":
• if object_id('dbo.f_fechacadena')is not null drop function
dbo.f_fechacadena;

Funciones escalares (crear y llamar)
• Una función escalar retorna un único valor. Como todas
las funciones, se crean con la instrucción
• "create function". La sintaxis básica es:
• create function NOMBRE (@PARAMETRO
TIPO=VALORPORDEFECTO) returns TIPO begin
INSTRUCCIONES return VALOR end; Luego del nombre
se colocan (opcionalmente) losparámetros de entrada
con su tipo.
• La cláusula "returns" indica el tipo de dato retornado.
• El cuerpo de la función, se define en un bloque
"begin...end" que contiene las instrucciones que
retornan el valor. El valor retornado pude ser de
cualquier tipo , excepto text, ntext, image, cursor o
timestamp.

Ejemplo



Creamos una función denominada "f_promedio" que recibe 2 valores yretorna el promedio:

create function f_promedio (
@valor1 decimal(4,2),
@valor2 decimal(4,2) )
returns decimal (6,2) as
begin
declare @resultado decimal(6,2)
set @resultado=(@valor1+@valor2)/2
return @resultado
end;

• Luego de "create function" y el nombre de la función,
se deben especificar los parámetros de entrada con sus
tipos de datos (entre paréntesis), el tipo de dato que...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación
  • Programacion
  • Programacion
  • Programación
  • Programacion
  • Programacion
  • Programacion
  • Programacion

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS