Archivo

Posts Tagged ‘Camilo jaramillo’

Tips (Consejos y trucos en visual studio)

diciembre 31, 2017 Deja un comentario

 

Anuncios

Asignación de varias variables a una sola sentencia SELECT con SQL SERVER 2005

febrero 11, 2010 2 comentarios

Hace poco necesite realizar un select que por lógica solo devolvería siempre un solo registro con varis columnas, debía capturar estas y realizar una serie de operaciones con las variables pues bueno esto no es tan fácil como pensamos quiero pasarles el código para realizar esta operación y además el link de donde lo saque espero les sirva:

DECLARE
    @reserved INT,
    @rowcnt INT,
    @used INT

SET @reserved = -1
SET @rowcnt = -1
SET @used = -1

;WITH x AS
(
    SELECT
        reserved,
        rowcnt,
        used,
        COUNT(*) OVER(PARTITION BY 1) AS theCount
    FROM sysobjects so
    INNER JOIN sysindexes si ON si.id = so.id
    WHERE
        so.name = 'sysrowsets'
)
SELECT
    @reserved = reserved,
    @rowcnt = rowcnt,
    @used = used
FROM x
WHERE theCount =
    (
        SELECT
            number
        FROM master..spt_values
        WHERE
            TYPE = 'p'
            AND number BETWEEN 1 AND theCount
    )

SELECT @reserved, @rowcnt, @used

Link de referencia


Agradecimeintos a: Camilo Jaramillo

Utilizar % y _ en una sentencia LIKE con SQL SERVER

enero 27, 2010 5 comentarios


Bueno cuando utilizamos la clausula LIKE para realizar búsquedas en una base de datos no podemos usar campantemente los caracteres ‘%’ y ‘_’ esto se complica un poco ya que los utilizamos generalmente como parámetros para configurar nuestra búsqueda.
Quiero dejarles una pequeña solución, ejemplo:

SELECT Nombre FROM Usuario Where  Nombre LIKE '%' + @VALOR + ‘%’


Si usamos este SELECT, indicamos que queremos todos los nombres de usuarios que empiecen o terminen por el @VALOR, si @VALOR llega con un ‘%’ o un ‘_’ este devolverá todos los registros lo cual sería un problema de seguridad y además una falla lógica del software.
Pues bueno lo que debemos hacer es usar la clausula ESCAPE para cuando se ingrese un ‘%’ o un ‘_’ , de la siguiente manera:

SELECT  Nombre  FROM  Usuario
WHERE Nombre LIKE '%\' + @ VALOR + '%' ESCAPE '\' OR
 Nombre LIKE '%_' + @ VALOR + '_%' ESCAPE '_'


Espero les sirva a todos, dejen el comentario si les sirvió. 🙂


Agradecimientos a: Camilo jaramillo