Sunteți pe pagina 1din 16

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

Curso de SQL Server 2005 Developer e Introduccin a VB.net No.1 Prctica No.1. Escribiendo y ejecutando cdigo transact sql desde el Query Analyzer ELLABORADO POR:: E ABORADO POR B R D R FECHA DE ELABORACIIN : FECHA DE ELABORAC N AD BORAC N Ing. Giovanni Senz. 24 de Junio del 2008 (Fecha Original).

COLLABORACIIIN Y VERSIIIN ORIIIGIIINALL EN 2000:: Ing. Marvin Lira Chamorro y Ing. Glenda COLA BO RAC N Y VER S N OR G NAL EN 2000 A O A N N Barrios OBJETTIIIVO DE LA PRCTIICA:: OBJET VO D E LA PRCT CA JE O D Con esta gua se pretende que identifiquen las diferencias de colores utilizados por el Query Analyzer para el cdigo Transact SQL.

Tabla de Contenido:
Tabla de Contenido: ___________________________________________________________ 1 Crear Procedimientos Almacenados:______________________________________________ 2
Definicin del Procedimiento Almacenado (con Parmetro) ______________________________ 2 Llamado para Ejecutar el Procedimiento Almacenado___________________________________ 3 Resultado del Procedimiento Almacenado _____________________________________________ 3

Funciones ___________________________________________________________________ 4
Funciones de tipo Escalar ___________________________________________________________ 4 Definicin de la Funcin ____________________________________________________________ 4 Ejecucin de la Funcin ____________________________________________________________ 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 Prctica No.2. ________________________________________________________________ 7 Tareas a Realizar:____________________________________________________________ 16 Bibliografa: ________________________________________________________________ 16

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

Crear Procedimientos Almacenados:


Definicin del Procedimiento Almacenado (con Parmetro)
El primer paso, es buscar donde esta la programacin 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 pgina siguiente:

Sobre la ventana que aparece, agregara el siguiente cdigo:

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

El cdigo, es el siguiente: CREATE PROCEDURE [dbo].[spGetNombre_Parametro] (@pNombre as Varchar(120)) AS Begin print @pNombre End

Llamado para Ejecutar el Procedimiento Almacenado

El cdigo es el siguiente: exec dbo.spGetNombre_Parametro 'Giovanni Saenz'

Resultado del Procedimiento Almacenado

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

Funciones
Funciones de tipo Escalar
Ir a la parte superior de la venta y buscar nueva consulta, ah usted agregara el cdigo correspondiente a la funcin:

Definicin de la Funcin
CREATE FUNCTION dbo.fncCalculaEdad_Parametro (@pNombreCompleto Varchar(120), Datetime, @pFechaNacimiento @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

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

Al ejecutarse la Instruccin, se agrega como parte de las funciones:

Ejecucin de la Funcin
La Ejecucin de la funcin, se realiza con la siguiente consulta: Select dbo.fncCalculaEdad_Parametro('Glenda '24/06/1973', getDATE()) Barrios Aguirre',

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)

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

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:

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

Trabajando con DDL y DML.


Utilizando la sintaxis de DDL y DML para llevar a cabo acciones de creado de TABLAS, actualizacin de tablas, insercin, modificacin y eliminacin de registros. OBJETTIIVO DE LA PRCTIICA:: OBJE VO DE LA PRCT CA Con esta gua se pretende dar a conocer la sintaxis del Lenguaje de definicin de Datos (DDL), Lenguaje de Control de datos (DCL), y Lenguaje de Modelacin 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

Prctica No.2.

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

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 , int NOT NULL objProyectoID ) 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

Departamento de Arquitectura y Sistemas de Aplicaciones

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

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, 'B1', 2005, 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 ,
Departamento de Arquitectura y Sistemas de Aplicaciones 9

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

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 cdigo, se genera el siguiente mensaje:

Departamento de Arquitectura y Sistemas de Aplicaciones

10

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

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

Departamento de Arquitectura y Sistemas de Aplicaciones

11

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

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)

Departamento de Arquitectura y Sistemas de Aplicaciones

12

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

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 restriccin que se puede imponer a uno o varios objetos DataColumn) para la columna ScpDigitacionProyectoID

Departamento de Arquitectura y Sistemas de Aplicaciones

13

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

ALTER TABLE ADD CONSTRAINT GO EXEC GO

ScpDigitacionProyecto WITH NOCHECK Mes_Check CHECK (MesAsistencia >=1) sp_help ScpDigitacionProyecto

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 DROP CONSTRAINT ScpDigitacionProyecto Mes_Check

Departamento de Arquitectura y Sistemas de Aplicaciones

14

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

Paso No.13: Alterar una tabla para Modificar el tipo de dato de un campo. EN este caso se cambio el tamao del campo Asistencia a 10 caracteres, adems se puso requerido. ALTER TABLE ALTER COLUMN Muestre la Tabla: Select * From ScpDigitacionProyecto [dbo].[ScpDigitacionProyecto] Asistencia Char(10) NOT NULL

Paso No.14: Visualizar el contenido de la tabla de Digitacin Proyecto. Select * From ScpDigitacionProyecto Paso No.15: Cambiar el valor del anioasistencia 2005 a 2006 para esto hay que buscar todos los registros de digitacin proyecto donde AnioAsistencia = 2005. UPDATE Set Where ScpDigitacionProyecto AnioAsistencia = 2006 AnioAsistencia = 2005

Paso No.16: Compruebe que la actualizacin 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.

Departamento de Arquitectura y Sistemas de Aplicaciones

15

Administradores de Bases de Datos

Studio .NET 2005 Y SQL Server 2005

Tareas a Realizar:
Ahora que tiene dos posibles formas de presentar Datos y hacer rastreos o bsquedas, hacer los ajustes a sus proyectos y presente: a.- Procedimientos Almacenados (para fines prcticos y crear habilidades se definen diez procedimientos con Parmetros y cinco sin parmetros). b.- Funciones recordar que estas pueden ser escalares o retornen tabla (Al igual que el caso anterior, es valido la cantidad, as mismo la distribucin). c.- Deben presentar cada estudiantes ocho Triggers (esto se deben programar en cada tabla, la definicin 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 Informacin que se debe Administrar en las Tablas.

Bibliografa:
En este momento queda pendiente, y en la semana se brindara los detalles (son Ocho textos los que se utilizaron para esta informacin, ms los datos de los profesores). Mi agradecimiento, tanto a los Seores Representantes en Nicaragua de MC Graw Hill: Engel Hurtado y de la Prentice Hall Francisco Mayorqun, quienes siempre muy gustosamente me han facilitado toda la informacin en Libros y textos frescos, no me he olvidado de cada uno de los ttulos, sin falta el lunes los incluir a esta lista. A todos Gracias.

Departamento de Arquitectura y Sistemas de Aplicaciones

16