Post on 12-Aug-2015
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 1
Curso de SQL Server 2005Curso de SQL Server 2005Curso de SQL Server 2005Curso de SQL Server 2005 Developer e Introducción a VB.net Developer e Introducción a VB.net Developer e Introducción a VB.net Developer e Introducción a VB.net
Práctica No.Práctica No.Práctica No.Práctica No.1111. Escribiendo y ejecutando código transact sql desde el Query Analyzer
EEELLLAAABBBOOORRRAAADDDOOO PPPOOORRR::: Ing. Giovanni Sáenz.
FFFEEECCCHHHAAA DDDEEE EEELLLAAABBBOOORRRAAACCCIIIÓÓÓNNN : 24 de Junio del 2008 (Fecha Original).
CCCOOOLLLAAABBBOOORRRAAACCCIIIÓÓÓNNN YYY VVVEEERRRSSSIIIÓÓÓNNN OOORRRIIIGGGIIINNNAAALLL EEENNN 222000000000::: Ing. Marvin Lira Chamorro y Ing. Glenda Barrios
OOOBBBJJJEEETTTIIIVVVOOO DDDEEE LLLAAA PPPRRRÁÁÁCCCTTTIIICCCAAA::: Con esta guía se pretende que identifiquen las diferencias de colores utilizados por el Query Analyzer para el código Transact SQL.
Tabla de Contenido:
Tabla de Contenido: ___________________________________________________________ 1
Crear Procedimientos Almacenados:______________________________________________ 2
Definición del Procedimiento Almacenado (con Parámetro) ______________________________ 2
Llamado para Ejecutar el Procedimiento Almacenado___________________________________ 3
Resultado del Procedimiento Almacenado _____________________________________________ 3
Funciones ___________________________________________________________________ 4
Funciones de tipo Escalar___________________________________________________________ 4
Definición de la Función ____________________________________________________________ 4
Ejecución de la Función ____________________________________________________________ 5
La Primera Forma para Correr la Funcion es: _________________________________________ 6
La segunda forma, es utilizando variables y pasando el valor a esta misma: _________________ 6
Trabajando con DDL y DML. ___________________________________________________ 7
Práctica No.2. ________________________________________________________________ 7
Tareas a Realizar:____________________________________________________________ 16
Bibliografía: ________________________________________________________________ 16
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 2
Crear Procedimientos Almacenados:
Definición del Procedimiento Almacenado (con Parámetro)
El primer paso, es buscar donde esta la programación de la base de datos, en este caso, es la base
de datos Northwin, luego, hacer click derecho sobre procedimientos almacenados y crear uno
nuevo:
Ver página siguiente:
Sobre la ventana que aparece, agregara el siguiente código:
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 3
El código, es el siguiente: CREATE PROCEDURE [dbo].[spGetNombre_Parametro] (@pNombre as Varchar(120)) AS Begin print @pNombre End
Llamado para Ejecutar el Procedimiento Almacenado
El código es el siguiente: exec dbo.spGetNombre_Parametro 'Giovanni Saenz'
Resultado del Procedimiento Almacenado
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 4
Funciones
Funciones de tipo Escalar
Ir a la parte superior de la venta y buscar “nueva consulta”, ahí usted agregara el código
correspondiente a la función:
Definición de la Función
CREATE FUNCTION dbo.fncCalculaEdad_Parametro (@pNombreCompleto Varchar(120), @pFechaNacimiento Datetime, @PFechaActual Datetime) RETURNS Varchar(240) AS BEGIN Declare @NombreEdad varchar(240) Set @NombreEdad = @pnombreCompleto + ' tiene la edad de ' + Cast(DATEDIFF(YEAR,@pfechanacimiento, @pfechaactual) as Varchar) + ' anios ' return (@NombreEdad) END
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 5
Al ejecutarse la Instrucción, se agrega como parte de las funciones:
Ejecución de la Función
La Ejecución de la función, se realiza con la siguiente consulta:
Select dbo.fncCalculaEdad_Parametro('Glenda Barrios Aguirre', '24/06/1973', getDATE())
set ANSI_NULLS ON set QUOTED_IDENTIFIER ON go ---------------------------------- ALTER FUNCTION [dbo].[FncGetCategoriasLineal2] ( @categoria nvarchar(15) ) RETURNS TABLE Return (select CategoryId, CategoryName From Categories where CategoryName = @categoria)
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 6
La Primera Forma para Correr la Funcion es: SELECT * FROM [Northwin].[dbo].[FncGetCategoriasLineal2] ('Confections')
La segunda forma, es utilizando variables y pasando el valor a esta misma:
Declare @categoria as Varchar(15) Set @categoria = 'Confections' SELECT * FROM [Northwin].[dbo].[FncGetCategoriasLineal2] (@Categoria)
Para ambos casos, el resultado es el mismo:
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 7
Trabajando con DDL y DML.
Práctica No.2. Utilizando la sintaxis de DDL y DML para llevar a cabo acciones de creado de TABLAS, actualización de tablas, inserción, modificación y eliminación de registros.
OOOBBBJJJEEETTTIIIVVVOOO DDDEEE LLLAAA PPPRRRÁÁÁCCCTTTIIICCCAAA::: Con esta guía se pretende dar a conocer la sintaxis del Lenguaje de definición de Datos (DDL), Lenguaje de Control de datos (DCL), y Lenguaje de Modelación de Datos (DML) Pasos a seguir:
En el SQL Query Analyzer, tenga seleccionado la base de datos Northwind.
Paso No.1: Crear una tabla llamada ScpDigitacionProyecto, antes debe verificarse que exista la tabla ScpDigitacionProyecto. if exists (Select * From dbo.sysobjects Where id = object_id ('[dbo].[ScpDigitacionProyecto]') and OBJECTPROPERTY (id, 'IsUserTable') = 1) Drop table [dbo].[ScpDigitacionProyecto] GO
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 8
Paso No.2: Crear la tabla ScpDigitacionProyecto con la siguiente estructura. CREATE TABLE [dbo].[ScpDigitacionProyecto] (
ScpDigitacionProyecto_ID int IDENTITY (1, 1) PRIMARY KEY CLUSTERED NOT NULL ,
MesAsistencia smallint NULL , AnioAsistencia int NULL , Asistencia char (2) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , objProyectoID int NOT NULL
) ON [PRIMARY] GO
Paso No.3 : Visualizar en modo texto la estructura de la tabla Notas SELECT * From ScpDigitacionProyecto
Paso No.4: Modificar la tabla ScpDigitacionProyecto, al agregar las columnas Fecha de tipo Datetime y MesPrueba de tipo int. ALTER TABLE [dbo].[ScpDigitacionProyecto] ADD Fecha Datetime NULL, MesPrueba Int GO
Para verificar los valores de la Tabla, vuelva a ejecutar:
SELECT * From ScpDigitacionProyecto
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 9
Paso No.5: Eliminar de la tabla ScpDigitacionProyecto eliminar la columna MesPrueba. ALTER TABLE [dbo].[ScpDigitacionProyecto] DROP Column MesPrueba GO
Para verificar los valores de la Tabla, vuelva a ejecutar:
SELECT * From ScpDigitacionProyecto
Paso No.6: Insertando registros en Digitacion Proyecto.
INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia, Asistencia , objProyectoID) VALUES (1, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) VALUES (2, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia, objProyectoID) VALUES (3, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia ,
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 10
Asistencia , objProyectoID) VALUES (4, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) VALUES (5, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) VALUES (6, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) VALUES (7, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) VALUES (8, 2005, 'B1', 65) INSERT INTO ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) VALUES (9, 2005, 'B1', 65) Al Ejecutar el código, se genera el siguiente mensaje:
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 11
Para verificar los valores de la Tabla, vuelva a ejecutar:
SELECT * From ScpDigitacionProyecto
Paso No.7: Crear una tabla a partir del contenido y la estructura de la tabla ScpDigitacionProyecto Select * Into ScpDigitacionProyectoCopia From ScpDigitacionProyecto
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 12
Paso No.8: Insertando los registros de la tabla ScpDigitacionProyectoCopia a ScpDigitacionProyecto INSERT Into ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) (Select MesAsistencia, AnioAsistencia, Asistencia, ObjProyectoID From ScpDigitacionProyectoCopia)
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 13
Paso No.9: Insertando los registros de la tabla ScpDigitacionProyectoCopia a ScpDigitacionProyecto INSERT Into ScpDigitacionProyecto (MesAsistencia, AnioAsistencia , Asistencia , objProyectoID) (Select MesAsistencia, AnioAsistencia, Asistencia, ObjProyectoID From ScpDigitacionProyectoCopia)
Para mostrar el contenido de Ambas Tablas: SELECT * From ScpDigitacionProyecto SELECT * From ScpDigitacionProyectoCopia
Paso No.10: Actualizar la tabla ScpDigitacionProyecto al agregar un constraint (Representa una restricción que se puede imponer a uno o varios objetos DataColumn) para la columna ScpDigitacionProyectoID
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 14
ALTER TABLE ScpDigitacionProyecto WITH NOCHECK ADD CONSTRAINT Mes_Check CHECK (MesAsistencia >=1) GO EXEC sp_help ScpDigitacionProyecto GO
Paso No.11: Compruebe que el constraint MesAsistencia funciona. Para esto vaya al Enterprise Manager e Intente ingresar un registro con un valor menor que 1 para el campo MesAsistencia.
Paso No.12: Elminar el Constraint creado para el MesAsistencia. ALTER TABLE ScpDigitacionProyecto DROP CONSTRAINT Mes_Check
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 15
Paso No.13: Alterar una tabla para Modificar el tipo de dato de un campo. EN este caso se cambio el tamaño del campo Asistencia a 10 caracteres, además se puso requerido. ALTER TABLE [dbo].[ScpDigitacionProyecto] ALTER COLUMN Asistencia Char(10) NOT NULL Muestre la Tabla: Select * From ScpDigitacionProyecto
Paso No.14: Visualizar el contenido de la tabla de Digitación Proyecto. Select * From ScpDigitacionProyecto Paso No.15: Cambiar el valor del anioasistencia 2005 a 2006 para esto hay que buscar todos los registros de digitación proyecto donde AnioAsistencia = 2005. UPDATE ScpDigitacionProyecto Set AnioAsistencia = 2006 Where AnioAsistencia = 2005 Paso No.16: Compruebe que la actualización se llevo a cabo de forma satisfactoria para esto en el enterprise manager o en otra ventana del query analyzer haga un select a la tabla ScpDigitacionProyecto.
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005
Departamento de Arquitectura y Sistemas de Aplicaciones 16
Tareas a Realizar:
Ahora que tiene dos posibles formas de presentar Datos y hacer rastreos o búsquedas, hacer
los ajustes a sus proyectos y presente:
a.- Procedimientos Almacenados (para fines prácticos y crear habilidades se definen
diez procedimientos con Parámetros y cinco sin parámetros).
b.- Funciones recordar que estas pueden ser escalares o retornen tabla (Al igual que el caso
anterior, es valido la cantidad, así mismo la distribución).
c.- Deben presentar cada estudiantes ocho Triggers (esto se deben programar en cada
tabla, la definición y como se implemente, eso depende del grupo).
d.- Se deben Cumplir todos los incisos anteriores, al igual de la cantidad de registros y todo
lo que se refiere a la Información que se debe Administrar en las Tablas.
Bibliografía:
En este momento queda pendiente, y en la semana se brindara los detalles (son Ocho
textos los que se utilizaron para esta información, más los datos de los profesores). Mi
agradecimiento, tanto a los Señores Representantes en Nicaragua de MC Graw Hill: Engel Hurtado y de la Prentice Hall Francisco Mayorquín, quienes siempre
muy gustosamente me han facilitado toda la información en Libros y textos frescos, no me
he olvidado de cada uno de los títulos, sin falta el lunes los incluiré a esta lista. A todos
Gracias.