m047a Curso Programando una Base de Datos SQL Server 2008, 36 h



Documentos relacionados
GALA CONCEPTO COMMIT, ROOLBACK SAVEPOINTS (SAVE TRANSACTION) No Consultas. Definiciones Transacciones ( L33 )

TRANSACT-SQL, DISEÑO Y PROGRAMACIÓN DE BASES DE DATOS EN SQL SERVER 2008

m047a Curso Programando una Base de Datos SQL Server 2008, 36 h Creación B.D. y Constraints

Base de datos Procedimientos Almacenados y Funciones

Índice. iii. Objetivos... 24

BASES DE DATOS SQL MÁS S DE SQL (DML) OPERADOR UNION (L30) <SELECT1> UNION <SELECT2> UNION <SELECTN> Copyright 2006, 2007 Instituto Gala

Consultas con combinaciones

Aplicaciones de las vistas Concepto de vista Vistas en SQL Vistas en SQL.

Administradores de Bases de Datos Studio.NET 2005 Y SQL Server Barrios

UNIVERSIDAD NACIONAL DE SAN AGUSTÍN FACULTAD DE PRODUCCIÓN Y SERVICIOS ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS LABORATORIO DE BASES DE DATOS 1

MANUALITO MS-SQL SERVER

Bases de Datos Relacionales

Tema: Procedimientos almacenados y cursores. Facultad : Ingeniería Escuela : Computación Asignatura: SQL SERVER. GUÍA 2 Pág. 1

8283: Administración y programación en Microsoft SQL Server 2012

Implementación de funciones definidas por el usuario

Microsoft SQL Server 2005

Tema: PROCEDIMIENTOS ALMACENADOS.

ADMINISTRACIÓN DE BASE DE DATOS

: COMPUTACIÓN E INFORMATICA : Ingeniería de Software Ingeniería de Redes y Comunicaciones : Administración de Bases de Datos I : T-INF127

SQL (Structured Query Language)

Repaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento

UNIVERSIDAD DEL ISTMO CAMPUS IXTEPEC LIC. INFORMATICA GRUPO 508 PROCEDIMIENTOS ALMACENADOS EN SQL SERVER 2000

Laboratorio Informix. Stored Procedures Triggers

Oracle 12c DISEÑO Y PROGRAMACIÓN

Formato para prácticas de laboratorio

T12 Vistas y tablas temporales

A.1. Definiciones de datos en SQL

ST31_Querying Microsoft SQL Server

ÍNDICE. Introducción... Capítulo 1. Novedades de Access

2071 Querying Microsoft SQL Server 2000 with Transact- SQL

ÍNDICE. Introducción... Capítulo 1. Novedades, mejoras y requisitos para la instalación... 1

- Bases de Datos - - Diseño Físico - Luis D. García

Trabajos de Ampliación. Bases de datos NoSQL.

ESCUELA DE CIENCIAS BASICAS TECNOLOGIA E INGENIERIA Programación de sitios web Act 11: Reconocimiento de la unidad 3

Bases de Datos SQL 1 SQL. Jorge Pérez R. Universidad de Talca, II Semestre 2006

8 SQL SERVER 2008 RA-MA

El usuario puede utilizar esta tabla derivada como una tabla más, en sus consultas.

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

8 MICROSOFT SQL SERVER 2008 R2. CURSO PRÁCTICO RA-MA

Unidad III: Lenguaje de manipulación de datos (DML) 3.1 Inserción, eliminación y modificación de registros

Curso Online de Microsoft

LENGUAJE DE CONSULTA ESTRUCTURADO - SQL CONTENIDO

Formato para prácticas de laboratorio

6. PROGRAMACIÓN CON TRANSACT-SQL

m046a Curso Consultando SQL Server 2005/2008 con Transact-SQL, 15 h

UNIVERSIDAD AUTONOMA DE LOS ANDES UNIANDES LENGUAJE SQL. SQL es un estándar un lenguaje estructurado para consultas

1

Sistemas de Datos Curso: Ernesto Chinkes. Subconsultas Stored Procedures - Triggers

Curso Oficial Microsoft: LENGUAJE DE CONSULTA DE SQL SERVER. Duración : 35 Hrs.

CURSO DE SQL SERVER 2005

CONSULTAS BASICAS EN SQL SERVER

Procedimientos almacenados con parametros de salida

GUÍA DE TRABAJO GRADO 11. Articulación SENA Programación de Software Ing. Néstor Raúl Suarez Perpiñan Página 1 de 6

PL/SQL. Con PL/SQL vamos a poder programar las unidades de programa de la base de datos Oracle:

Curso SQL Nivel Avanzado 1. Miguel Jurado García

Programación de Consultas SQL ADO.Net LDP / DUOC-AV

SQL Server SQL, Transact SQL Diseño y creación de una base de datos

9- Procedimientos almacenados.

Acceso a bases de datos MySQL con PHP

DESCRIPCIÓN ESPECÍFICA

UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION

SQL PROCEDURAL Triggers y Stored Procedures. Ing. Gustavo A. Correa Reina UNCPBA 2008

3 Consultas y subconsultas

BASE DE DATOS QUÉ ES UNA BASE DE DATOS?

Restricciones de Integridad

Formato para prácticas de laboratorio

Sub consultas avanzadas

Base de datos relacional

Resumen. El rol del lenguaje SQL en los SGBDR y en la Relacional. cjimenez@inf.udec.cl, tamrstro@inf.udec.cl

INSTITUCIÓN EDUCATIVA GABRIEL GARCIA MÁRQUEZ BASE DE DATOS. DESARROLLO DE SOFTWARE Página 1 de 28 SQL SQL

SQL Server SQL, Transact SQL Diseño y creación de una base de datos (con ejercicios prácticos corregidos)

Bases de Datos 2. Teórico

Curso de PHP con MySQL Gratis

APUNTES: APLICACIONES WEB BASADAS EN PHP Y MYSQL Página 1 de 5

LENGUAJE ESTRUCTURADO DE CONSULTAS SQL (2)

SQL dinámico en Transact SQL

El Lenguaje SQL TEMA V. Grupo de Bas ses de Datos Avanzadas Univ. Carlo os III de Madrid. V.1 SQL como Lenguaje de Definición de Datos

Bases de Datos: Structured Query Language (SQL)

PROCEDIMIENTOS ALMACENADOS. CREATE PROCEDURE nombreprocedimiento tipodato [=valordefecto]][,...]

El lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.

Uso de las herramientas de consulta de Transact-SQL

MANUAL BÁSICO DEL LENGUAJE SQL

Programación SQL. Lucio Salgado Diciembre 2008

INTRODUCCION. entidades. Modelo lógico de la base de datos. Matricula. carne. codigo_curso. año semestre nota. propiedades

Base de datos Lenguaje SQL

SERVICIO NACIONAL DE APRENDIZAJE SENA

Nuevas Características de la Versión 9.1 de PostgreSQL. Alcides Rivera Posso

Haga clic para PostgreS cambiar el estilo

Si queremos modificar la contraseña de sys, una vez que accedamos al sistema como sys, escribiremos la sentencia:

5- Uso de sentencias avanzadas

Objetos de la Base de Datos

CURSORES EN SQL SERVER

MS_20461 Querying Microsoft SQL Server

Formato para prácticas de laboratorio

Guía práctica de SQL

PROGRAMANDO BASES DE DATOS PostgreSQL INTRODUCCIÓN INTRODUCCIÓN A LAS BASES DE DATOS (L1)

Guía Taller I Conexión con la Base de Datos Introducción a PostgreSQL

Transcripción:

Creación De Índices (L32) UNA TABLA PUEDE CONTENER VARIOS ÍNDICES SQL SERVER CREA AUTOMATICÁMENTE ÍNDICES ÚNICOS PARA ASEGURAR LOS CONSTRAINTS DE PRIMARY KEY Y UNIQUE EL ÍNDICE POR DEFECTO PARA LA CLAVE PRIMARIA, ES CLUSTERED SÓLO UN ÍNDICE CLUSTERED POR TABLA SE PUEDE EMPLEAR CREATE INDEX

Introducción Restricciones Sobre Índices (L32) SÓLO EL PROPIETARIO DE LA TABLA PUEDE CREAR LOS ÍNDICES UN SÓLO ÍNDICE CLUSTERED POR TABLA MÁXIMO NÚMERO DE NON-CLUSTERED, 249 MÁXIMO NÚMERO DE COLUMNAS POR ÍNDICE, 16 SE PUEDE EMPLEAR CREATE INDEX

Índices Compuestos (L32) UN ÍNDICE QUE UTILIZA MÁS DE UNA COLUMNA INCIDE EN LOS MECANISMOS DE PAGINACIÓN

Índices Sobre Vistas (L32) SE PUEDEN CREAR ÍNDICES SOBRE LAS VISTAS UNA VISTA INDEXADA REFLEJARA LOS CAMBIOS REALIZADOS EN LAS TABLAS BASES, DESPUÉS DE QUE EL ÍNDICE HA SIDO CREADO SE EMPLEN LAS INSTRUCCIONES CREATE VIEW, CREATE INDEX

Create Index (L33) CREATE [ UNIQUE ] [ CLUSTERED NONCLUSTERED ] INDEX index_name ON { table view } ( column [ ASC DESC ] [,...n ] ) [ WITH < index_option > [,...n] ] [ ON filegroup ] < index_option > :: = { PAD_INDEX FILLFACTOR = fillfactor IGNORE_DUP_KEY DROP_EXISTING STATISTICS_NORECOMPUTE SORT_IN_TEMPDB }

Rebuilding un Índice (L34) LOS ÍNDICES EN SQL SERVER SON ALMACENADOS EN MEMORIA PAGINADA. LAS PÁGINAS DE LOS ÍNDICES SON ENLAZADAS. CUANDO SE RECONSTRUYE UN ÍNDICE LA INFORMACIÓN DE LOS ÍNDICES (Y DE LOS DATOS EN EL CASO CLUSTERED ES REORGANIZADA PARA EVITAR FRAGMENTACIÓN) PARA HACER UN REBUILD SE PUEDE EMPLEAR EN CREATE INDEX (LO CUAL ES MÁS EFICIENTE QUE RECREAR EL ÍNDICE EN UN SÓLO PASO)

Rebuilding un Índice (L34) COMANDO DBCC DBREINDEX DBCC DBREINDEX ( basedatos.propietario.tabla' [, nombre_indice [, fillfactor ] ] ) [ WITH NO_INFOMSGS]

Eliminando Un Índice (L34) DROP INDEX <tabla.indice vista.indice>[,.] sp_helpindex <objeto> DEVUELVE INFORMACIÓN SOBRE LOS ÍNDICES DE LA TABLA USE sistemp IF EXISTS (SELECT name FROM sysindexes WHERE name = emp_ind') DROP INDEX empleado.emp_ind GO

Renombrando Un Índice (L34) sp_rename [ @nombreviejo = ] nombre_viejo', [ @nombrenuevo = ] 'nombre_nuevo' [, [ @tipoobjeto = ] tipo_objeto' ] TIPO OBJETO PUEDE SER COLUMN, DATABASE, INDEX, OBJECT, USERDATATYPE

Visualizando Los Índices (L34) sp_helpindex <objeto> <objeto> PUEDE SER CUALQUIER TABLA Y/O VISTA

Índices En Optimización De Consultas (L35) SQL SERVER OFRECER VARIOS MÉTODOS PARA MOSTRAR COMO SE REALIZA LA NAVEGACIÓN ENTRE TABLAS Y SE UTILIZAN LOS ÍNDICES PARA OBTENER LOS DATOS DE UNA CONSULTA SET SHOWPLAN_TEXT ON, DESPUÉS DE ESTE COMANDO EL PLAN DE EJECUCIÓN ES AUTOMÁTICAMENTE MOSTRADO SET SHOWPLAN_ALL ON, IGUAL QUE EL ANTERIOR PERO DE UNA MANERA MÁS CONCISA

Optimización Motor De Base De Datos (L36) SERVICIO INDEPENDIENTE DESDE SQL SERVER 2005 INTEGRADO CON XML PERMITE TRABAJAR CON MÚLTIPLES BASE DE DATOS BASADA EN PLANES DE EJECUCIÓN HERRAMIENTA INTERACTIVA

Mejores Prácticas (L37) APLICACIÓN GRATUITA DESCARGABLE DEL SITIO DE MICROSOFT CONJUNTO DE MEJORES PRÁCTICAS Y POLÍTICAS DETECTA POTENCIALES DESVIACIONES DESARROLLO EN.NET

Vistas (L39)

Vistas (L39) UNA VISTA ES UNA TABLA VIRTUAL CUYO CONTENIDO DEPENDE DEL RESULTADO DE UNA CONSULTA QUERY AL IGUAL QUE UNA TABLA CONTIENE UN CONJUNTO DE COLUMNAS Y DE REGISTROS A DIFERENCIA DE UNA VISTA LOS REGISTROS DE ÉSTA NO SE ALMACENAN FÍSICAMENTE EN LA BASE DE DATOS. ES ARMADA DINÁMICAMENTE CON LA INFORMACIÓN CONTENIDA EN LA TABLA MAESTRA, CUANDO LA VISTA ES REFERENCIADA

Ventajas De Las Vistas (L40) ACTÚA COMO UN FILTRO DE LOS REGISTROS DE LAS TABLAS REFERENCIADAS PUEDE AGRUPAR REGISTROS DE UNA O VARIAS TABLAS O DE UNA O VARIAS BASES DE DATOS CON EL USO DE CONSULTAS DISTRIBUIDAS ES POSIBLE MANTENER EN UNA VISTA DATOS DE BASES DE DATOS HETEROGÉNEAS NO EXISTEN RESTRICCIONES EN CUANTO A LOS TIPOS DE CONSULTA A REALIZAR EN UNA VISTA Y ALGUNAS PEQUEÑAS RESTRICCIONES DESDE EL PUNTO DE VISTA DE ACTUALIZACIÓN

Escenarios Para La Utilización De Vistas (L40) PARA CUSTOMIZAR LA PERCEPCIÓN DE LOS USUARIOS FINALES DE BASES DE DATOS PARA IMPLEMENTAR MECANISMOS DE SEGURIDAD, POR EJEMPLO ACCESO DE LECTURA A LAS VISTAS Y NINGÚN ACCESO A LAS TABLAS REFERENCIADAS EN LAS VISTAS PARA IMPORTAR/EXPORTAR DATOS ENTRE SERVIDORES SQL SERVER PARA PARTICIONAR DATOS (O FILTRAR)

Consideraciones Creación De Vistas (1/2) (L41) LAS VISTAS SE CREAN SOBRE LA BASE DE DATOS ACTUAL, SIN EMBARGO PUEDEN REFERIRSE A TABLAS O VISTAS DE OTRA BASE DE DATOS (INCLUSIVE DE OTROS SERVIDORES, EN EL CASO DE CONSULTAS DISTRIBUIDAS) SE PUEDEN CONSTRUIR VISTAS DE VISTAS. SQL SERVER EN GENERAL SOPORTA 32 NIVELES DE ANIDAMIENTO NO SE PUEDEN ASOCIAR REGLAS RULES NI PREDEFINIDOS DEFAULT A LAS VISTAS NO SE PUEDEN ASOCIAR AFTER TRIGGERS SINO INSTEAD OF TRIGGERS PARA LAS VISTAS

Consideraciones Creación De Vistas (2/2) (L41) LA CONSULTA ASOCIADA CON LA VISTA NO PUEDE INCLUIR LAS EXPRESIONES (ORDERBY, COMPUTE, COMPUTE BY, INTO) NO SE PUEDEN CREAR VISTAS TEMPORALES O VISTAS SOBRE TABLAS TEMPORALES SE PUEDEN CONSTRUIR VISTAS DE VISTAS. SQL SERVER EN GENERAL SOPORTA 32 NIVELES DE ANIDAMIENTO

Creación De Vistas (L41) CREATE VIEW [<propietario>. ] nombrevista [ ( columna [,...n ] ) ] [ WITH < atributovista > [,...n ] ] AS instruccion_select [ WITH CHECK OPTION ] < atributovista > ::= { ENCRYPTION SCHEMABINDING VIEW_METADATA }

Modificación De Datos A Través De Vistas (L42) INSERTANDO DATOS INSERT INTO nombrevista { [ ( listacolumnas ) ] { VALUES ( { DEFAULT NULL expression } [,...n] ) } }

Modificación De Datos A Través De Vistas (L42) LA VISTA DONDE SE VA A INSERTAR nombrevista deben ser updatable. Las modificaciones realizadas con la instrucción INSERT no pueden afectar a más de una de las tablas base (donde toman los datos las vistas) referenciadas por la claúsula FROM. EN EL CASO DE TENER UNA VISTA ACCEDIENDO A MÚLTIPLES TABLAS, LAS COLUMNAS DEL COMANDO INSERT DEBEN CORRESPONDER A UNA SOLA TABLA APLICA A LOS COMANDOS INSERT, UPDATE Y DELETE

Características Vistas Updatable (L42) LA INSTRUCCIÓN SELECT NO PUEDE TENER FUNCIONES AGREGADAS, Y NO CONTIENEN TOP, GROUP BY, UNION DISTINCT, VISTA DONDE SE VA A INSERTAR LA INSTRUCCIÓN SELECT NO CONTIENE COLUMNAS AGREGADAS (COLUMNAS CON OPERADORES Y EXPRESIONES) LA INSTRUCCIÓN FROM, REFERENCIA AL MENOS REFERENCIA UNA TABLA

Funciones Updatable (L42) INSTEAD OF TRIGGERS VISTAS PARTICIONADAS (VISTAS CONTENIENDO DATOS EN VARIOS SERVIDORES)

Eliminando Una Vista (L42) DROP VIEW <NOMBRE>

Optimizar Rendimientos Con Vistas (L43) CONSULTAS PRE-FABRICADAS ASOCIACIÓN DE ÍNDICES EN VISTAS ACTUALIZACIÓN INMEDIATA SOBRE LAS OPERACIONES DE INSERCIÓN

Introducción Stored-procedures (L44) PROCEDIMIENTOS ESCRITOS EN SQL-TRANSACT SE ALMACENAN COMO PARTE DE LA BASE DE DATOS SE ALMACENAN Y SE EJECUTAN EN EL SERVIDOR

Definición Stored-procedures (L44) UNA COLECCIÓN PRE-COMPILADA DE INSTRUCCIONES TRANSACT-SQL ALMACENADAS COMO UN OBJETO CON UN NOMBRE Y PROCESADA COMO UNA UNIDAD. SQL SERVER OFRECE UN CONJUNTO DE PROCEDIMIENTOS ALMACENADOS PARA SER UTILIZADOS COMO UTILITARIOS MOSTRANDO INFORMACIÓN DEL SISTEMA, SOBRE LAS BASES DE DATOS Y LOS USUARIOS LOS PROVISTOS POR SQL SE LLAMAN SYSTEM STORED- PROCEDURES

Características Stored-procedures (L44) SON SIMILARES A LOS PROCEDIMIENTOS DISPONIBLES EN OTROS LENGUAJES DE PROGRAMACIÓN PERMITEN PARÁMETROS DE ENTRADA DEVUELVEN MÚLTIPLES RESULTADOS A TRAVÉS DE PARÁMETROS DE SALIDA CONTIENEN INSTRUCCIONES DE PROGRAMACIÓN PARA ACCEDER A LAS BASES DE DATOS Y PUEDEN REALIZAR LLAMADAS A OTROS STORED-PROCEDURES RETORNAN UN VALOR DE STATUS PARA INDICAR EL ÉXITO O FRACASO DE LA EJECUCIÓN

Stored-procedures No Son Funciones (L44) NO PUEDEN SER UTILIZADOS COLOCANDO SU NOMBRE (COMO EL CASO DE LAS FUNCIONES, DONDE SE REALIZA LA SUSTITUCIÓN) NO RETORNAN VALORES

Beneficios Stored-procedures (L44) PERMITEN PROGRAMACIÓN MODULAR PERMITEN EJECUCIÓN RÁPIDA Y EFICIENTE REDUCEN EL TRÁFICO EN LA RED PUEDEN SER UTILIZADOS COMO MECANISMOS DE SEGURIDAD (NO DAR ACCESO A LAS TABLAS, SÓLO A LOS STORED PROCEDURES)

Estructura Stored-procedures (L44) SON CREADOS CON CREATE PROCEDURE Y MODIFICADOS CON ALTER PROCEDURE LA PRIMERA PARTE DEL STORED- PROCEDURE CONTIENE EL NOMBRE Y LOS PARÁMETROS DEL STORED-PROCEDURE LA SEGUNDA PARTE CONTIENE EL CÓDIGO EN TRANSACT DEL STORED-PROCEDURE LA TERCERA PARTE CONTIENE EL VALOR DEL STATUS RETORNADO

Operaciones Sobre Stored-procedures (L45) CREATE PROCEDURE <NOMBRE> AS <CODIGO> EXECUTE EXEC <NOMBRE> ALTER PROCEDURE INSTRUCCIONES, COMANDOS SQL DROP PROCEDURE

Detalles Sobre Stored-procedures (L45) EL COMANDO CREATE PROCEDURE NO PUEDE SER COMBINADO CON OTROS COMANDOS SQL EN UNA EJECUCIÓN BATCH EL STORED-PROCEDURE SE CREA EN LA BASE DE DATOS ACTUAL NI CONVIENE CREAR UN STORED_PROCEDURE CON EL NOMBRE SP_ COMO LOS DEL SISTEMA, YA QUE HARIA A QUE BUSCARA EN LAS BASES DE DATOS DEL SISTEMA SE PUEDEN CREAR STORED-PROCEDURE TEMPORALES CON #, ## (GLOBAL)COMO NOMBRE AL IGUAL QUE LAS TABLAS

Sintáxis Creación Stored-procedures (L45) CREATE PROC [ EDURE ] [ propietario. ] nombre [ ; numero ] [ { @parametro tipo } [ DEFAULT ] [ = valor defecto ] [ OUTPUT ] ] [,...n ] [ WITH { RECOMPILE ENCRYPTION RECOMPILE, ENCRYPTION } ] [ FOR REPLICATION ] AS instrucciontransact [...n ]

Procedimientos Almacenados Con Parámetros (L46) CREATE PROCEDURE <PROCEDIMIENTO> @<PAR1> <TIPO> AS < INSTRUCCIONES> CREATE PROC empldept @dept VARCHAR(12) AS SELECT * FROM Empleados WHERE coddpto = @dept EXEC <NOMBRE> <PARAMETRO> (Si es de tipo de salida, se debe especificar OUTPUT también en la llamada) EXEC empldept D001

Proc. Alm. Con Parámetros Defecto (L46) CREATE PROC <NOMBRE> @<PARAMETRO> <TIPO>= <VALOR> CREATE PROC empldept @dept VARCHAR(12) = d001

Proc. Alm. Parametros Por Referencia (L46) CREATE PROCEDURE <NOMBRE> @<PARAMETRO> <TIPO DATOS> OUTPUT AS <CUERPO PROCEDIMIENTO>

Proc. Alm. Variables Locales (L46) CREATE PROCEDURE Ejemplo @parent INT, AS @parsal INT OUTPUT -- Declara e inicializa una variable para almacenar el error DECLARE @ErrorNum INT -- Inicializa el error SET @ErrorNum = 0 -- almacena el error IF (@@ERROR <> 0) SET @ErrorNum = @@ERROR

Extended Stored-procedures (L47) PROCEDIMIENTOS ALMACENADOS ESCRITOS EN OTROS LENGUAJES, COMO POR EJEMPLO LENGUAJE C sp_addextendedproc [ @functname = ] 'procedimiento', [ @dllname = ] 'dll'

Mensajes De Error Personalizados (L48) CREATE PROCEDURE Ejemplo INSERT INTO -- Chequea el valor del error. IF @@ERROR <> 0 BEGIN PRINT Ocurrio un error de inserción " RETURN(99) END ELSE BEGIN PRINT Inserción exitosa RETURN(0) END

Mensajes De Error Personalizados (L48) RAISERROR ( { idmsg msg } {, severidad, estado } [, argumento [,...n ] ] ) [ WITH opcio [,...n ] ] idmsg > 50000, para evitar utilizar los del sistema msg (string formateado estilo lenguaje C) severidad debe ser indicado de 0 a 18 estado debe ser indicado de 0 a 128

Errores En SQL Server (L48) LOS ERRORES EN SQL SERVER TIENEN VARIOS ATRIBUTOS EL ID DELERROR EL MENSAJE DEL ERROR LA SEVERIDAD DEL ERROR EL ESTADO DEL ERROR EL NOMBRE DEL STORED PROCEDURE EL NÙMERO DE LÌNEA

Funciones Definidas Por El Usuario (L49) INTRODUCIDO A PARTIR DE SQL 2000 REUTILIZACION DE FUNCIONES DE CONSULTA UNA VEZ DEFINIDA SE UTILIZA COMO FUNCION DE SQL TRES TIPOS DE FUNCIONES: ESCALARES TABLA EN LINEA TABLA DE MULTI SENTENCIAS

Crear y Alterar Funciones Definidas Por El Usuario (L50) CONSTRUCTOR CREATE FUNCTION CONSTRUCTOR ALTER FUNCTION FUNCTIONS SON TRATADOS COMO OBJETOS DE LA BASE DE DATOS

Funciones Escalares (L51) DEVUELVEN UN VALOR ESCALAR (int, money,varchar,real) CREATE FUNCTION [propietario.] nombre_funcion ( [{ @nombrepar tipo [ = defecto]} [,..n]]) RETURNS tipo [WITH <opcion> >::={SCHEMABINDING ENCRYPTION] [AS] BEGIN... RETURN expresion_escalar END

Ejemplo Funciones Escalares (L51) CREATE FUNCTION dbo.cubo( @numero float) RETURNS float AS BEGIN RETURN(@numero * @numero * @numero) END

Funciones De Tabla En Linea (L51) DEVUELVEN LA SALIDAD DE UN SELECT (UNA TABLA) LA SALIDA SE UTILIZA EN JOINS O CONSULTAS COMO UNA TABLA STANDARD CREATE FUNCTION [propietario.] nombrefuncion ( [{ @parametro tipo [ = defecto]} [,..n]]) RETURNS TABLE [WITH <option>::={schemabinding ENCRYPTION}] RETURN [(] instrucción select [)]

Ejemplo Funciones De Tabla En Linea (L51) CREATE FUNCTION dbo.librosportema(@tema char(2) ) RETURNS TABLE AS RETURN (SELECT * FROM Libros WHERE tema = @tema)

Funciones De Tabla De Multisentencias (L51) SIMILARES A PROCEDIMIENTOS ALMACENADOS PROCESAMIENTO ELABORADO INVOLUCRANDO VARIAS TABLAS DEVUELVEN EL RESULTADO DE UN PROCESAMIENTO COMPLICADO EN UNA TABLA CREATE FUNCTION [propietario.] nombrefuncion ( [{ @parametro tipo [ = defecto]} [,..n]]) RETURNS TABLE [WITH <opcion> >::={SCHEMABINDING ENCRYPTION] [AS] BEGIN CODIGO FUNCION RETURN END