Bueno vamos a ver un poco que es un factor positivo.
Vamos a abrir la solución del proyecto que estuvimos utilizando hasta ahora.
Vamos a ir a Feil Open Rossen prosigan Solutions y vamos a elegir la solución que estuvimos creando
el nombre que le hayan puesto ustedes en nuestro caso acá le hemos puesto centro médico.
Hoy abrimos la solución y tengan en cuenta que esta solución es la que vamos a estar utilizando durante
todo el master hasta hasta finalizar el curso donde vamos a ir incluyendo todos los conceptos que vayamos
aprendiendo lo vamos a ir incorporando acá y acá nos va a quedar digamos todo lo que es el desarrollo
de la base de datos que vamos a terminar programando así que lo que vamos a hacer es vamos a vamos a
abrir acá donde en la carpeta Aquaris vamos a hacer click derecho y vamos a hacer newcomer.
Recuerden que esta opción es la que nos permite incluir el archivo en la solución de otra manera si
lo hacemos a través de nuevo Cuadri tendríamos que hacer un ceibas y guardarlo en la carpeta de la solución.
Entonces vamos a ver estos presídium es una es un conjunto de instrucciones SQL que están está almacenado.
Si cuando decimos que está almacenado no es que está almacenado en un archivo como como lo que acabo
de crear sino que está almacenado internamente en el SQL Server también lo podríamos tener guardada
en un archivo como vamos a ser el ejemplo ahora.
Pero además cuando nosotros creamos el procedure el SQL lo almacena internamente y lo deja disponible
para que lo ejecutemos cuando cuando querramos fijense
vamos acá le ponemos la contraseña porque abrir el archivo antes no lo había colocado
este es el archivo que estuvimos utilizando con los scripts anteriores donde estuvimos explicando varios
de varias sentencias de SQL fijense todo esto es un conjunto de instrucciones.
Si yo podría hacer de esto una estor procedure prosiguió.
Y por qué se llama ástor procedures porque es un procedimiento almacenado es un procedimiento almacenado
porque tiene un conjunto de procedimientos que van a estar almacenados en el SQL Server y lo voy a poder
ejecutar en cualquier momento cuando lo llame.
Ahora bien digamos este script no tiene mucho sentido ponerlo en un procedure porque los estor prosigue
Hydro están diseñados para ejecutar acciones concretas o múltiples acciones concretas en este caso todo
lo que tenemos acá son consultas Selleck que lo único que hacen es devolverme resultados.
Por lo general una presidirlo que no para lo que nos sirve para generar un proceso de inserción de registros
un proceso de borrado o un proceso de actualización de registros.
Por supuesto que también dentro de nuestro proceso Ur vamos a tener instrucciones Select.
Vamos a tener vamos a tener una una mezcla de todas juntas pero el particularmente un gestor prohibido
lo que tiene que tener es un objetivo a decir este estor prosiguió va a realizar algo en específico
algo en particular.
Entonces vamos a ver la estructura de estos procedure la estructura de prosiguió.
Comienza con la sentencia Privat y después sigue la palabra reservada proc que es la abreviación de
se puede colocar procedure pero es más práctico poner proc.
Después de la palabra reservada procura el nombre del gestor prosiguió.
Si en este caso vamos a ponerle S.P. ejemplo
y lo que sigue después del nombre de estos proceder entre abrir y cerrar paréntesis son los parámetros
que va a recibir el estor presídium para procesar esos esos.
Esas sentencias que tengo dentro con determinados parámetros lo más común es que el gestor presídium
reciba parámetros porque lo que nosotros vamos a querer hacer va a ser insertar datos o va a hacer actualizar
datos y muy probablemente necesitemos parámetros de entrada para hacer esas operaciones dentro.
Entonces lo que vamos a hacer acá es declarar una variable de entrada por ejemplo le vamos a colocar
vamos a ponerlo abajo para que sea un poquito más ordenado y vamos a colocarle la variable por ejemplo
y de paciente que es uno de los de los campos que estuvimos definiendo en la tabla de pacientes y vamos
a colocarle el tipo de dato el tipo de dato de los de los que ya estuvimos viendo anteriormente definiendo
las bases de las tablas cuando definimos las tablas y definimos un tipo de dato bueno las variables
que podemos definir los parámetros de entrada que podemos definir.
Usamos los mismos tipos de datos porque el SQL utiliza los mismos tipos de datos tanto como para los
tipos los campos como para las variables.
Entonces acá le ponemos entero interior y vamos a colocarle a modo de ejemplo sólo ese parámetro de
entrada.
Seguidamente después de cerrar paréntesis lo que va es la instrucción hash sí y después de hash lo que
viene es ya directamente todos los scripts de que nosotros querramos ejecutar dentro del prosiguió entonces
vamos.
Por ejemplo lo que vamos a hacer acá es vamos a hacer un Select.
Vamos a hacer Select Asterisco
from paciente where
Guber y de paciente y acá le vamos a colocar el parámetro de entrada y de paciente
y acá le colocamos un globo para que termine la destrucción con lo que hacemos acá es decirle bueno
cualquier instrucción que haya debajo lo va a ejecutar como otra con otra instrucción por separado es
decir si yo tuviese por ejemplo otro estor prosiguió declarado aquí abajo dentro de mí mismo script.
Lo que va a hacer es con este es decir terminada de ejecutar todo esto y seguir con el siguiente y crear
otro proceder con otro nombre que yo recuerde que aquí si yo no le pusiese el GOW me daría un error
porque entendería que todo es parte de un mismo script y no porque no podría ejecutar dos criadita dos
criadita al mismo tiempo entonces siempre tengámoslo en cuenta de colocarlo como manera de manera automática
por si existe una instrucción siguiente a lo que estamos escribiendo con esto ya si nosotros ejecutamos
con F5 este escribe lo que va a hacer es crearnos el lector procedure ese pequeño ejemplo si vamos a
ponerles vamos vamos a cambiarle vamos a Vamos a cambiarle acá y vamos a esta nomenclatura es una nomenclatura
que yo se digamos como ejemplo ahora pueden poner la que quieran.
Lo que sí tienen o sea les recomiendo que usen una nomenclatura siempre con el mismo patrón para poder
identificarla más es más fácil lo que se puede hacer es indicar con una en vez de colocarse p se puede
indicar con una S que quiere decir que es un estor que va a realizar una consulta dentro y si y si fuese
una estor que inserta datos acá le podríamos colocar ahí como para tener una noción de digamos viéndolo
por afuera el lector qué es lo que realiza dentro pero bueno en este caso vamos a colocarle una S y
vamos a ponerle pacientes.
Esto me devolvería los pases del paciente.
Vamos a ponernos a simular el paciente que yo lo estoy pasando enviando como parámetro obvio a ejecutar
el lector.
Voy a ejecutar con F5 y fijense ahí me creó me dice que los comandos se ejecutaron correctamente y me
llame que me tiene que haber creado prosiguió en la base de datos y vamos a revisarlo vamos a abrir
la base centro médico y en la carpeta programa habilidad.
Ahí vamos a tener si desplegamos tenemos la carpeta ástor presidios
ahí está creado el gestor prosiguió fijense de Beo está bajo el esquema de veo que es el esquema por
default.
Ese paciente.
Ahora bien este proceder fue creado desde un script.
Si yo quisiese podría directamente esto vamos a guardarlo podría directamente desde la carpeta programa
Bellini ir a ástor presidios y abrir el hacer clic sobre el botón derecho y puedo seleccionar la opción
Modificar y esto es lo que va a hacer es lo mismo que hicimos anteriormente pero desde la base de datos
desde la desde el entorno de la del explorador de objetos de la base de datos fijense hakama agregó.
Unos comandos automáticamente que yo antes no los había incluido el SQL.
Cuando se crea de manera de manera de esta forma se hace clic derecho y yo poder por ejemplo podría
crear acataré procedures.
Le doy clic y me crea fijense que me coloca estas sentencias automáticamente.
Ahora vamos a ver qué significa esta sentencia.
La primer sentencia Anci Neilson lo que establece es que si yo tuviese registros por ejemplo de campo
y de pacientes los tuviese con valores en Nul sí y yo digamos los estoy buscando exactamente los estoy
buscando.
De esta manera vamos a vamos a copiar esto para no confundirnos y no perderlo.
Si yo buscase por ejemplo
de esta manera si yo quiero seleccionar todos los pacientes que están que tienen Null en el campo y
de paciente.
Recuerden que no significaba vacíos decir que no tenían ningún valor de ese campo.
Teniendo esta instrucción en on an Sinus on lo que va a ser esto es que si yo tuviese algún registro
Enol no me va a devolver nada esta consulta.
Esta consulta no me va a devolver nada.
Fíjense vamos a comprobarlo pero vamos a hacerlo con otro campo porque la tabla la tabla paciente en
el campo de paciente no tiene ningún valor nulo entonces vamos a hacerlo con otro campo de la tabla.
Paciente vamos a venir aquí vamos a abrir la tarde la paciente y la vamos a editar.
Y vamos a aquellos que ya tenemos por ejemplo domicilio vamos a colocarle este al segundo registro también
lo vamos a colocar ahí tenemos dos registros enorme.
Ahí tenemos dos registros en Nul de la tabla paciente y se lo vamos a visualizar acá acá están los dos
en Nul.
Fíjense vamos a cambiar vamos a poner mi domicilio y vamos a colocarle igual anulé.
Entonces vamos a vamos a ejecutar
vamos a hacer.
Vamos a hacer una prueba vamos a colocar esto aquí abajo como si fuese un escrito por separado.
Así vamos a ver que nos devuelve con F5 Fíjense no me devuelve nada porque le estoy diciendo que los
valores que los valores Anzhi de la de la tabla de codificación de cada diez caracteres que estén en
Nul si no me los tome.
Eso es básicamente lo que estoy diciendo acá y si yo quiero que me los tome que digamos que cuando yo
busque por por Nul esos resultados le tengo que colocar aquí o en la sentencia en instrucciones que
me colocaron.
Entonces cuando lo ejecuto nuevamente ahí me los va a devolver.
Bueno yo no vamos a ver esta destrucción se quoted Identifier vamos vamos a traspasarla para bajo control
se controlé y vamos a explicar de qué se trata en ese gol existen palabras reservadas por ejemplo las
parábolas Séléka la palabra from lapalabra Identity aunque yo podría crear objetos con esas palabras
reservadas no sería lo ideal porque lo que lo que lo que digamos esté lo que produce es confusiones.
Porque si tuviésemos un objeto un objeto que se denomine Séléka lo que haría atraernos confusión.
Pero bueno el SQL Server lo permite le permite crear entonces si nosotros hacemos una tabla vamos a
crear una tabla chiquita rápida y no se preocupe porque después vamos a ver el comando criadita más
adelante pero vamos a poner T-1000 y acá le vamos a poner.
Yo quiero que se llame Select la tabla fíjense como me marca en azul Select porque porque es una palabra
reservada de SQL Server.
Entonces bueno ahora vamos a ver cómo salvamos ese error vamos a abrir y cerrar los paréntesis y acá
le colocamos un nombre de campo por ejemplo campo 1 y le ponemos el tipo de dato el tipo de dato va
a ser parchar 50 por ejemplo.
Así está bien y fíjense si nosotros quisiésemos llamar a esta tabla de quisiésemos ponerle de nombre
Select.
Lo que tendríamos que hacer acá es colocarle entre comillas el nombre de la tabla Select.
Sí pero fíjense la instrucción esta está colocada Denon la instrucción de quoted identifica y Identifier.
Así que si yo ejecuto esta consulta me laba me la va a tomar como correcta porque yo le estoy indicando
que el que digamos con esta instrucción que yo puedo utilizar para hablar reservadas encerradas entre
comillas dobles.
Ahora qué pasa si yo coloco acá le coloco off si fíjense que automáticamente me lo marca como un error
y si yo lo ejecuto ejecutamos.
Me da un error cerca de la instrucción de la línea donde está escrito Select.
Eso es básicamente el funcionamiento de esta instrucción quote lo que nos permite crear crear objetos
en el SQL Server con nombres de palabras reservadas no es recomendable pero como dijimos antes el SQL
así lo permite.
Entonces bien esto que acabamos de explicar es una estructura básica de SQL Server de Dordain procede
y cómo se manipula su contenido cómo se manipula su web sus en sus instrucciones que están adentro y
cómo se cómo se graba ahora cuando yo hice clic derecho sobre el estor prosiguiera automáticamente fijense
sobre Derecho modified automáticamente me coloco en un altar.
Esto significa que este estor prosiguió se va a modificar va a ser una alteración de todo lo que yo
haga aquí dentro cuando ejecute con F5 lo que va a hacer es modificarse si yo acá le agrego por ejemplo
un print 6 que es lo que hace es imprimir el número 6 en la consola y le doy F5 me lo voy a guardar
en el lector prosiguió
Si entonces cuando yo creé necesite crear un 0 acá en vez de halter lo que vamos a tener que colocar
va a ser la destrucción criadita.
Ahora bien este explosivo que acabamos de crear donde adentro le estamos diciendo que me de que me devuelva
el todos los campos del Estado de la paciente donde el campo y de pacientes es igual al parámetro de
entrada que estoy recibiendo en este caso y de pacientes.
Fíjense esto vamos a ver ahora que tenemos vamos a ejecutarlo.
Esto bueno ahí le doy F5 fíjense qué pasa si le VF5 y lo que tengo escrito escrito y el nombre de estos
posibles recibió bajo paciente que ya existe en la base de datos y abajo me dice exactamente lo mismo
me dice que ya existe un objeto llamado ese paciente en la base de datos y no pueden existir dos objetos
con el mismo nombre.
Entonces bueno esto es posible y ya está ya está creado entonces lo que vamos a hacer vamos a venir
aquí a la ventana de comandos que estuvimos guardando en la solución y vamos a colocar.
Vamos a cargar aquí arriba vamos a vamos a ejecutar el lector prosiguió Uri y le vamos a pasar un parámetro
qué parámetro le vamos a pasar el aire del paciente entonces cómo ejecutamos un procedure con la sentencia
exec si con esto ejecutamos nosotros prosiguió.
Seguidamente va el nombre de nuestro proceder paciente si y seguidamente va el parámetro de que recibo
en este caso recibe uno solo pero si recibiese más parámetros lo que tenemos que hacer es separarlo
con como los parámetros.
Y si tuviese parámetros de tipo texto lo colocamos entre comillas simples.
De esta manera en este caso tiene un solo parámetro de estar prohibidos donde lo estamos pasando de
ahí de paciente.
Vamos a ejecutarlo ahí a ver qué pasa le damos F5 seleccionamos todo y le damos F5 y fíjense no me devolvió
nada.
Por qué no me devolvió nada.
Vamos a ver por qué no me devolvió nada.
Es muy probable que no tengamos ningún paciente con ese ADEDY y vamos a ver vamos a revisar relataba
la paciente.
Claro no tenemos ninguno vamos a ponerle el 7 por ejemplo Roberto Pérez vamos a colocar la clave de
ley de paciente 7 y vamos a ejecutarlo.
Fíjense ahí me devolvió el registro corré correspondiente al de paciente 7 me devolvió todos los campos.
Si yo quisiese por ejemplo que no devuelva todos los campos que devuelva algunos y bueno lo que tengo
que hacer en estos procedures bueno primeramente acá le voy a colocar un halter para que cuando lo ejecute
no me dé error y voy a venir a donde dice Select Asterisco y le voy a colocar los campos que yo quiero
que me devuelva.
Apellido nombre y
de país y el campo de observación que doy F5 5 para que me guarde los cambios yo me lo guardo.
Voy a volver a la ventana de comandos si lo voy a ejecutar de nuevo a ver que cambió fíjense me está
devolviendo los campos que seleccione en el Selectah dentro del sector prosiguió.