SELECT *
FROM sys.objects
WHERE TYPE = 'P'
AND DATEDIFF(D ,modify_date ,GETDATE())<7
Bienvenidos! En mi blog comparto mis experiencias y conocimientos relacionados con las TIC's, lenguajes de programación, bases de datos...
2015/10/01
SQL - Lista de procedimientos almacenados modificados en los últimos 7 días
Este sencillo script ayuda a identificar los procedimientos almacenados que se han cambiado / modificado en los últimos 7 días.
2015/08/13
Windows 10 - Todos los Atajos de Teclado
El pasado 29 de julio Microsoft lanzó mundialmente Windows 10 la nueva versión de su plataforma que cuenta con características bastante interesantes. Lo novedoso de este nuevo sistema, es que se ha puesto a disposición de forma gratuita con el objetivo de lograr 1.000 millones de usuarios en los próximos dos años.
Windows 10 debutará primero en ordenadores y tabletas pero está diseñado también para funcionar en los teléfonos móviles y consolas de juegos. Entre algunas de sus nuevas funciones podemos mencionar el nuevo navegador Edge, así como la versión para ordenadores de Cortana, la asistente de voz de la compañía. Por su parte, Windows 10 ha reintroducido el menú de inicio (Start) a través del que los usuarios podrán acceder a las aplicaciones y funciones que más utilizan.
Parece que el ritmo de adopción de Windows 10 está siendo rápido, y las previsiones lo sitúan como el próximo líder en cuota de mercado. Si eres un asiduo al sistema y lo necesitas para trabajar, atento a los siguientes atajos de teclado que te permitirán ir mucho más rápido por sus diferentes menús y funciones.
Sistema
- Windows + I: Abrir la configuración del sistema.
- Windows + C: Ejecutar el asistente virtual Cortana para interactuar con comandos de voz.
- Windows + S: Ejecutar el asistente virtual Cortana para interactuar con comandos escritos.
- Windows + R: Abrir el cuadro de diálogo “Ejecutar”.
- Windows + X: Mostrar el menú contextual del menú de Inicio.
Ventanas
- Windows + Flecha izquierda / derecha / arriba / abajo: Seccionar la pantalla en varios cuadrantes.
- Windows + Tabulador: Visualizar todas las ventanas abiertas.
- Alt + Tabulador: Cambiar entre las diferentes ventanas abiertas.
Escritorios virtuales
- Tecla Windows+Ctrl+D: crea un nuevo escritorio virtual.
- Tecla Windows+Ctrl+Izquierda: desplazarse al escritorio de la izquierda.
- Tecla Windows+Ctrl+Derecha: desplazarse al escritorio de la derecha.
- Tecla Windows+Ctrl+F4: cerrar el escritorio actual.
- Tecla Windows+Tab: visualizar todos tus escritorios y aplicaciones.
Cortana y ajustes
- Tecla Windows+Q: inicia Cortana lista para recibir órdenes de voz.
- Tecla Windows+S: inicia Cortana lista para recibir órdenes escritas.
- Tecla Windows+I: abre la página de ajustes de Windows 10.
- Tecla Windows+A: abre el centro de acciones (o notificaciones) de Windows.
- Tecla Windows+X: abre el menú contextual del botón de inicio.
Atajos clásicos
- Tecla Windows+: temporalmente esconde todas las aplicaciones para mostrar el escritorio.
- Tecla Windows+D: minimizar todas las aplicaciones para ir directamente al escritorio.
- Ctrl+Shift+M: restaurar todas las aplicaciones minimizadas (muy útil después de Win + D).
- Tecla Windows+Home: minimizar todas las ventanas excepto la que estás usando.
- Tecla Windows+L: bloquear tu PC e ir a la ventana de bloqueo.
- Tecla Windows+E: abrir el explorador de archivos.
- Alt+Arriba: subir un nivel en el explorador de archivos.
- Alt+Izquierda: ir a la carpeta anterior en el explorador de archivos.
- Alt+Derecha: ir a la siguiente carpeta en el explorador de archivos.
- Alt+Tab: cambiar de ventana (mantén presionado Alt mientras presionas Tab para elegir visualmente a cuál ventana dirigirte).
- Alt+F4: cerrar la ventana actual.
- Tecla Windows+Shift+Izquierda (o Derecha): mover una ventana a tu siguiente monitor.
- Tecla Windows+T: cambiar de aplicación entre las que se encuentran en la barra de tareas (presiona Enter para elegir).
- Tecla Windows+Cualquier tecla numeral: abrir la aplicación de tu barra de tareas ubicada en esa posición.
Imágenes, vídeo y pantallas
- Tecla Windows+PrtScr: tomar una captura de pantalla y enviarla directo a tu carpeta de imágenes
- Tecla Windows+G: iniciar la aplicación de DVR para grabar la pantalla (siempre y cuando tu tarjeta gráfica lo soporte).
- Tecla Windows+Alt+G: inicia la grabación de pantalla en la ventana que te encuentras.
- Tecla Windows+Alt+R: detener la grabación.
- Tecla Windows+P: cambiar entre modo de pantalla secundaria (si tienes otro monitor conectado).
- Tecla Windows+tecla de “mas”: ampliar o acercar la pantalla usando la lupa virtual.
- Tecla Windows+tecla de “menos”: alejar o disminuir la pantalla usando la lupa virtual.
Explorar Windows a fondo
- Ctrl+Shift+Esc: abrir el administrador de tareas de Windows.
- Tecla Windows+R: abrir la caja de diálogo “Ejecutar”.
- Shift+Borrar: borrar archivos permanentemente sin enviarlos a la papelera de reciclaje.
- Alt+Enter: mostrar las propiedades del artículo seleccionado.
- Tecla Windows+U: abrir el centro de acceso fácil.
- Tecla Windows+Espacio: cambiar el idioma del teclado.
- Tecla Windows+Ctrl+Shift+cualquier tecla numeral: abrir la aplicación de tu barra de tareas ubicada en esa posición, pero con permisos de administrador.
Sistema
- Windows + I: Abrir la configuración del sistema.
- Windows + C: Ejecutar el asistente virtual Cortana para interactuar con comandos de voz.
- Windows + S: Ejecutar el asistente virtual Cortana para interactuar con comandos escritos.
- Windows + R: Abrir el cuadro de diálogo “Ejecutar”.
- Windows + X: Mostrar el menú contextual del menú de Inicio.
Ventanas
- Windows + Flecha izquierda / derecha / arriba / abajo: Seccionar la pantalla en varios cuadrantes.
- Windows + Tabulador: Visualizar todas las ventanas abiertas.
- Alt + Tabulador: Cambiar entre las diferentes ventanas abiertas.
Escritorios virtuales
- Tecla Windows+Ctrl+D: crea un nuevo escritorio virtual.
- Tecla Windows+Ctrl+Izquierda: desplazarse al escritorio de la izquierda.
- Tecla Windows+Ctrl+Derecha: desplazarse al escritorio de la derecha.
- Tecla Windows+Ctrl+F4: cerrar el escritorio actual.
- Tecla Windows+Tab: visualizar todos tus escritorios y aplicaciones.
Cortana y ajustes
- Tecla Windows+Q: inicia Cortana lista para recibir órdenes de voz.
- Tecla Windows+S: inicia Cortana lista para recibir órdenes escritas.
- Tecla Windows+I: abre la página de ajustes de Windows 10.
- Tecla Windows+A: abre el centro de acciones (o notificaciones) de Windows.
- Tecla Windows+X: abre el menú contextual del botón de inicio.
Atajos clásicos
- Tecla Windows+: temporalmente esconde todas las aplicaciones para mostrar el escritorio.
- Tecla Windows+D: minimizar todas las aplicaciones para ir directamente al escritorio.
- Ctrl+Shift+M: restaurar todas las aplicaciones minimizadas (muy útil después de Win + D).
- Tecla Windows+Home: minimizar todas las ventanas excepto la que estás usando.
- Tecla Windows+L: bloquear tu PC e ir a la ventana de bloqueo.
- Tecla Windows+E: abrir el explorador de archivos.
- Alt+Arriba: subir un nivel en el explorador de archivos.
- Alt+Izquierda: ir a la carpeta anterior en el explorador de archivos.
- Alt+Derecha: ir a la siguiente carpeta en el explorador de archivos.
- Alt+Tab: cambiar de ventana (mantén presionado Alt mientras presionas Tab para elegir visualmente a cuál ventana dirigirte).
- Alt+F4: cerrar la ventana actual.
- Tecla Windows+Shift+Izquierda (o Derecha): mover una ventana a tu siguiente monitor.
- Tecla Windows+T: cambiar de aplicación entre las que se encuentran en la barra de tareas (presiona Enter para elegir).
- Tecla Windows+Cualquier tecla numeral: abrir la aplicación de tu barra de tareas ubicada en esa posición.
Imágenes, vídeo y pantallas
- Tecla Windows+PrtScr: tomar una captura de pantalla y enviarla directo a tu carpeta de imágenes
- Tecla Windows+G: iniciar la aplicación de DVR para grabar la pantalla (siempre y cuando tu tarjeta gráfica lo soporte).
- Tecla Windows+Alt+G: inicia la grabación de pantalla en la ventana que te encuentras.
- Tecla Windows+Alt+R: detener la grabación.
- Tecla Windows+P: cambiar entre modo de pantalla secundaria (si tienes otro monitor conectado).
- Tecla Windows+tecla de “mas”: ampliar o acercar la pantalla usando la lupa virtual.
- Tecla Windows+tecla de “menos”: alejar o disminuir la pantalla usando la lupa virtual.
Explorar Windows a fondo
- Ctrl+Shift+Esc: abrir el administrador de tareas de Windows.
- Tecla Windows+R: abrir la caja de diálogo “Ejecutar”.
- Shift+Borrar: borrar archivos permanentemente sin enviarlos a la papelera de reciclaje.
- Alt+Enter: mostrar las propiedades del artículo seleccionado.
- Tecla Windows+U: abrir el centro de acceso fácil.
- Tecla Windows+Espacio: cambiar el idioma del teclado.
- Tecla Windows+Ctrl+Shift+cualquier tecla numeral: abrir la aplicación de tu barra de tareas ubicada en esa posición, pero con permisos de administrador.
Fuente: http://www.muypymes.com/
2015/08/05
Windows 10 - Activa el modo Dios
El modo dios o 'God Mode' es una forma sencilla de acceder a todas las configuraciones de tu Windows desde un sólo lugar a un clic de distancia.
Para Activar el Modo Dios debes:
1. Ve al un lugar en tu computador, como el escritorio.
2. Crea una nueva carpeta.
3. Luego dale el nombre a la carpeta GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
4. Listo, ya tienes todas las opciones en un sólo lugar.
Para Activar el Modo Dios debes:
1. Ve al un lugar en tu computador, como el escritorio.
2. Crea una nueva carpeta.
3. Luego dale el nombre a la carpeta GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}
4. Listo, ya tienes todas las opciones en un sólo lugar.
2015/07/20
Windows 8 - Crear un Punto de Acceso Wi-Fi Para Compartir Internet
Es posible que en algunas ocasiones necesitemos crear un punto de acceso en nuestro Windows 8 de manera que otros dispositivos como una tablet o un smartphone que por defecto no reciben buena señal del router puedan tener conexión a Internet a través de nuestro equipo. En este artículo vamos a explicar paso a paso cómo llevar a cabo el proceso de compartir una conexión a Internet por cable a través de un punto de acceso Wi-Fi.
Para realizar esto necesitaremos:
- Un ordenador con Windows 8 conectado por cable al router o a otra red.
- Una tarjeta Wi-Fi que será la que actuará como punto de acceso.
Con estos requisitos ya podemos comenzar a crear nuestra conexión puente que nos permita compartir nuestra conexión a Internet desde una tarjeta Wi-Fi conectada al ordenador.
Configurar la conexión puente entre la tarjeta de red y la tarjeta Wi-Fi
Lo primero que debemos hacer es “puentear” los dos dispositivos que vamos a utilizar: por un lado nuestra tarjeta de red y por otro la tarjeta Wi-Fi. Para ello lo primero que debemos hacer es abrir el centro de redes y recursos compartidos de nuestro Windows 8.
En el menú de la izquierda seleccionamos “cambiar configuración del adaptador” para ver todos nuestros adaptadores de red.
A continuación seleccionaremos a la vez los dos dispositivos a puentear. Pulsaremos con el botón derecho con ambos puenteados y elegiremos la opción “conexiones de puente”.
Esperaremos a que nuestro sistema operativo cree el nuevo conmutador.
Una vez finalice ya tendremos la conexión puente lista para funcionar.
Lo siguiente que debemos hacer es crear un punto de acceso ad-hoc en nuestro Windows a través de la tarjeta Wi-Fi de manera que otros dispositivos puedan conectarse a nuestro equipo.
Configurar el punto ad-hoc en Windows 8
En otros sistemas como Windows 7 todo esto puede hacerse desde el apartado de crear una nueva conexión, sin embargo, con la llegada de Windows 8 estas opciones han sido eliminadas por lo que debemos recurrir a un terminal para poder realizar estos ajustes.
Lo primero que haremos será abrir una ventana de MS-DOS con permisos de administración para ejecutar los siguientes comandos.
Antes de configurar este tipo de red debemos asegurarnos de que nuestra tarjeta de red es compatible con conexiones ad-hoc. Para ello desde el terminal con permisos de administración tecleamos:
netsh wlan show drivers
Y nos fijaremos en el apartado “Red hospedada admitida”
En caso de que el valor sea afirmativo podremos seguir adelante con la configuración de la red ad-hoc. Para ello, al no disponer de una ventana específica para esta función desde la misma ventana de MS-DOS con permisos de administración teclearemos:
netsh wlan set hostednetwork mode=allow ssid=[Nombre de la red] key=[Contraseña]
Por ejemplo:
netsh wlan set hostednetwork mode=allow ssid=RedesZone.ad-hoc key=1234567890
Una vez tenemos todo configurado lo único que nos queda por hacer es activar nuestra red ad-hoc con Internet compartido. Para ello debemos teclear:
netsh wlan start hostednetwork
Y nuestra red ya estará disponible para conectarse a ella con la clave que hayamos introducido en la configuración.
Para desactivar esta red compartida simplemente teclearemos:
netsh wlan stop hostednetwork
Fuente: http://www.redeszone.net/
2015/07/15
Windows 8 - Cómo eliminar las carpetas especiales del explorador
En Windows 8 Microsoft ha hecho algo que -al menos a mi me- molesta mucho: desactivar las útiles bibliotecas de documentos y sustituir las bibliotecas que había por defecto, por unas carpetas especiales del sistema.
La mayor parte de los usuarios no se darán cuenta de este cambio, pero sí que hay una cuestión que es consecuencia directa y que es lo que más me molesta de todo: esas carpetas ahora aparecen colgando de "Mi PC" mostrándose en el explorador, tanto en la vista por defecto:as formación
...como en el árbol de navegación lateral:
También aparecen en los diálogos de selección de carpetas, en el árbol correspondiente.
Llámame "especialito", pero que me molesta mucho tener por el medio esas carpetas inútiles. Prefiero las bibliotecas en las que incluías tú las carpetas que te interesaban, y además no aparecían molestando por el medio como pasa aquí.
Entonces ¿cómo podemos librarnos de ellas pero no perder la funcionalidad en caso de que las uses?
La solución, como otras tantas veces, pasa por tocar el registro del sistema.
Abre el registro pulsando Tecla de Windows + R y escribiendo "regedit.exe". Necesitarás permisos de administrador de la máquina local.
En el editor del registro navega hasta la rama:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Current Version\explorer\MyComputer\NameSpace
Dentro de ésta verás que hay varias "carpetas" de claves como las que se ven en la figura:
Cada una de ellas representa una de estas carpetas especiales, a saber:
{1CF1260C-4DD0-4ebb-811F-33C572699FDE}: Carpeta Música
{374DE290-123F-4565-9164-39C4925E467B}: Carpeta Descargas
{3ADD1653-EB32-4cb0-BBD7-DFA0ABB5ACCA}: Carpeta Imágenes
{A0953C92-50DC-43bf-BE83-3742FED03C9C}: Carpeta Vídeos
{A8CDFF1C-4878-43be-B5FD-F8091C1C60D0}: Carpeta Documentos
{B4BFCC3A-DB2C-424C-B029-7FE99A87C641}: Carpeta Escritorio
Si eliminas estas carpetas (todas o solo algunas) te desaparecerán del explorador, tanto de la portada como del árbol del lateral, y no te molestarán por el medio.
Si quieres, antes de hacerlo, arrastra las que sí uses a los favoritos del explorador, justo encima, o crea accesos directos en otro lugar y así aunque se eliminen del árbol y de la portada, podrás acceder igualmente a ellas, pero sin que te molesten por el medio.
Por cierto, si quieres eliminarlas también del diálogo de selección de carpetas y archivos, puedes borrar las claves de idéntico nombre de la rama del registro:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\
CurrentVersion\Explorer\MyComputer\NameSpace
Con lo que te librarás de ellos definitivamente.
¡Espero que te resulte útil!
2015/07/11
TeamViewer 10 - Controla un ordenador de forma remota
Poder conectarnos de forma remota a un sistema informático a través de Internet es muy útil ya que nos permite disponer de todas sus funcionalidades sin la necesidad de estar sentado delante de él. Sin embargo, si queremos realizar determinadas funciones es necesario disponer del software de control remoto adecuado que nos permita trabajar sin problemas y cumpla con nuestras necesidades.
Existen muchas aplicaciones de control remoto de sistemas informáticos (Remote Desktop, VNC, Escritorio Remoto de Google, Hangouts, etc), sin embargo, una de las herramientas más utilizadas tanto en entornos corporativos como por usuarios individuales es TeamViewer. Hace pocos días los desarrolladores de la conocida herramienta TeamViewer lanzó la espera versión 10 de su cliente de control remoto de sistemas informáticos. Esta nueva versión llega a todos los usuarios con las siguientes novedades:
- Nuevo diseño.
- Mejoras en el rendimiento general del cliente y del servidor.
- Políticas de ajustes centrales.
- Historial del chat permanente y grupos de conversación.
- Lista blanca de clientes.
- Videollamadas integradas.
- Perfil de usuario e identidad corporativa.
- Soporte para conexiones UltraHD.
- Posibilidad de crear notas de las sesiones.
- Cierre de sesiones inactivas.
- Integración en la nube.
- Bloqueo de las reuniones para evitar que nadie se una sin permiso.
- Pizarra para el control remoto.
Para conectarnos de forma remota a nuestro ordenador a través de TeamViewer lo primero que debemos hacer es descargarlo desde su página web principal. Team Viewer es gratuito para uso personal, aunque aplica algunas limitaciones de funciones, generalmente no necesitadas por los usuarios no profesionales.
Una vez descargado el programa lo ejecutamos. En primer lugar veremos un sencillo asistente de instalación que nos preguntará si queremos instalar el servicio cliente-servidor en nuestro PC o simplemente ejecutarlo. Igualmente debemos indicar si somos usuarios personales o empresariales.
En este ejemplo no vamos a instalar nada, por lo que seleccionamos las opciones “Iniciar” y “Privadamente”. A continuación se abrirá la ventana del nuevo TeamViewer 10.
En esta ventana veremos dos apartados. En la parte izquierda un número ID de identificación (similar a un usuario) y una clave de acceso. Estos datos son necesarios si queremos que sea otra persona la que se conecta a nuestro ordenador o si este es un ordenador que queremos controlar nosotros de forma remota.
En la parte derecha disponemos de un cuadro donde debemos meter el ID del ordenador que queremos controlar. Este ID nos lo debe facilitar la persona dueña del ordenador o debemos llevarlo apuntado desde nuestro ordenador remoto que queremos controlar.
Una vez introduzcamos el ID en el cliente automáticamente conectará con los servidores de TeamViewer, obtendrá la IP del servidor remoto y establecerá conexión con él (todo esto en segundo plano). Nos pedirá también la contraseña de acceso, que debemos introducir cuando el servidor la solicite.
Con estos pasos se abrirá en nuestro ordenador una nueva ventana donde podremos ver el escritorio del ordenador remoto que estamos controlando.
El usuario dueño del ordenador servidor que estamos controlando verá en todo momento lo que estamos haciendo y podrá finalizarnos la conexión siempre que él quiera. Igualmente podrá comunicarse con nosotros en tiempo real ya sea a través de la pizarra como del cliente de chat o la videollamada, funciones integradas por defecto en TeamViewer 10.
2015/07/09
SQL - Conocer las ultimas consultas ejecutadas
El siguiente script permite saber que consultas se acaban de ejecutar en la base de datos.
SELECT deqs.last_execution_time AS [Time],
dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY
deqs.last_execution_time DESC
La gracia de la consulta es justamente esa, listar las ultimas consultas SQL que se han ejecutado.
SQL - Vaciar los registros de distintas tablas en una base de datos
Vamos a recorrer todas las tablas de nuestra base de datos y eliminar sus registros. Para ello, utilizaremos la información que nos brinda information_schema.tables. Es muy importante que limitemos de alguna forma las tablas que se van a vaciar, por ejemplo, si las tablas de nuestra aplicación empiezan por "TBL_" podríamos especificar una condición WHERE que filtre por aquellas tablas que empiezan con ese nombre.
USE DB_PRUEBA
DECLARE @SQL_DELETE VARCHAR(255),
@NOM_TABLA VARCHAR(255)
DECLARE CURSOR_DELETE CURSOR
FOR
SELECT 'DELETE FROM ' + TABLE_SCHEMA + '.' + TABLE_NAME,
TABLE_SCHEMA + '.' + TABLE_NAME
FROM information_schema.tables
WHERE TABLE_NAME NOT LIKE 'sysdiagrams'
ORDER BY
TABLE_NAME
OPEN CURSOR_DELETE FETCH NEXT FROM CURSOR_DELETE INTO @SQL_DELETE, @NOM_TABLA
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC (@SQL_DELETE)
FETCH NEXT FROM CURSOR_DELETE INTO @SQL_DELETE, @NOM_TABLA
END
CLOSE CURSOR_DELETE
DEALLOCATE CURSOR_DELETE
2015/07/07
8 razones de porqué los niños no deberían usar dispositivos portátiles
¿Su hijo a menudo juega con laptops, tablets o su teléfono inteligente? Tal vez quieras repensar eso. Una investigación mostró que exponer a los niños pequeños a estas tecnologías realmente perjudica los factores críticos para el desarrollo, comportamiento y aprendizaje. ¿Por qué tenemos que estar preocupados?
Las Tabletas impactan en el crecimiento cerebral
Entre el nacimiento y la edad, el cerebro se triplica en tamaño y continúa desarrollando rápidamente hasta la edad de 21 años. Esto requiere una amplia variedad de estimulación que no implique la exposición a las tecnologías antes mencionadas. En algunos casos, estas tecnologías causan retrasos cognitivos, aprendizaje deteriorado e impulsividad creciente.
Retraso en el desarrollo social
Niños pequeños que usan cosas como iPads a menudo han retrasado el desarrollo de habilidades sociales como logro académico y hablando.
Obesidad
Ésta debería ser una obviedad. 1 de cada 4 niños canadienses y 1 de cada 3 niños estadounidenses tienen sobrepeso u obesidad. Estos dispositivos suelen hacen que nuestros hijos vivan vidas más sedentarias. Eso equivale a un aumento de peso.
Privación de sueño
También no es de extrañar. No es raro que los niños se queden despiertos hasta muy tarde jugando juegos de computadora.
Demencia digital
El contenido multimedia de alta velocidad contribuye a los déficits de atención y concentración disminuida. Esto es causado por “poda cerebral” de circuitos neuronales en la corteza frontal.
Riesgo creciente de adicción
Estas tecnologías separan a menudo los padres de los niños. Se ha demostrado que cuando el apego parental está ausente, las posibilidades de adicción crecen, particularmente a las tecnologías que son adictos ya.
Exposición a la radiación.
La OMS clasifica los teléfonos celulares como un posible carcinógeno debido a la radiación que emiten. En 2013, el Dr. Anthony Miller de School of Public Health de la Universidad de Toronto recomienda que basada en la investigación, la exposición de radiofrecuencia debe ser reclasificada como probablemente carcinógeno.
Tensión ocular
Pasar demasiado tiempo frente a las pantallas puede causar tensión en los ojos, pero a los niños especialmente. Los niños pueden desarrollar síndrome visual informático, que es un tipo de cansancio ocular. Si tus hijos usan estas tecnologías, es mejor restringirlos a 30 minutos a una hora.
2015/06/01
SQL Server - Utilizando Arrays de parametros en Procedimientos Almacenados
Una característica muy solicitada por los desarrolladores en SQL Server es la de poder pasar varios valores a un procedimiento almacenado en forma de array. Desde hace mucho tiempo utilizo una función de SQL que me permitía trabajar con Arrays a través de una cadena de texto delimitada por comas, normalmente los utilizaba en procesos de selección como en el ejemplo siguiente:
La definición de la función en Transact-Sql es la siguiente:
CREATE PROCEDURE SP_GetPerson
@param VARCHAR(MAX)
AS
SELECT p.BusinessEntityID,
p.FirstName,
p.LastName
FROM Person.Person p
WHERE p.BusinessEntityID IN (SELECT *
FROM [dbo].[ArrayToTable] (@param))
ORDER BY
p.BusinessEntityID ASC
En este procedimiento el parametro @param recibe una cadena delimitada por comas con los valores '1,2,3,4,5', el SP_GetPerson devuelve todas las personas con estos códigos, la definición del parametro '@param' se realiza con varchar(MAX), para que la cadena pueda almacenar la mayor cantidad de códigos posible, sin embargo varchar(MAX) tiene la limitación de 8000 caracteres y en algunas situaciones se nos puede quedar pequeño.La definición de la función en Transact-Sql es la siguiente:
CREATE FUNCTION [dbo].[ArrayToTable]
(
@delimStr NVARCHAR(MAX)
)
RETURNS @StrValTable TABLE
(StrVal VARCHAR(20))
AS
BEGIN
DECLARE @strlist NVARCHAR(MAX),
@pos INT,
@delim CHAR,
@lstr NVARCHAR(MAX)
SET @strlist = ISNULL(@delimStr, '')
SET @delim = ','
WHILE ((LEN(@strlist) > 0) AND (@strlist <> ''))
BEGIN
SET @pos = CHARINDEX(@delim, @strlist)
IF @pos > 0
BEGIN
SET @lstr = SUBSTRING(@strlist, 1, @pos -1)
SET @strlist = LTRIM(SUBSTRING(@strlist, CHARINDEX(@delim, @strlist) + 1, 8000))
END
ELSE
BEGIN
SET @lstr = @strlist
SET @strlist = ''
END
INSERT @StrValTable
VALUES
(
@lstr
)
END
RETURN
END
GO
Básicamente lo que hace es crear una tabla temporal conformada por un campo y cada valor en un único registro, de esta forma la consulta de arriba puede ser ejecutada sin problemas, hay que tener en cuenta que el uso de tablas temporales puede reducir el rendimiento, sin embargo es mejor esto a llamar al SP muchas veces. Podriamos tambien optar por pasar los arrays con XML y readaptar la función.
Suscribirse a:
Entradas (Atom)


















