none
Busqueda de registro de una tbla por cualquier campo RRS feed

  • Pregunta

  • Buenos dias amigos me encuentro en la necesidad de pedirles ayuda yo se que para buscar un registro se utiliza al go como:

    CREATE PROCEDURE busqueda(@ID int)
    as begin
    select * from principal where @ID=ID
    end
    go

    Pero quisiera saber si hay alguna forma de hacer un procedimiento almacenado para buscar registros ingresando cualquier dato de cualquier columna no se si me explico

    id	cod    marca    color   dueño   
    1	1.1	AXZ	AZUL	LUIS 	    
    2	1.3	FDW	ROJO	ANA
    3	1.4	AXZ	AZUL	ANA
    4	1.5	RWS	AZUL	JUAN	
    5	2.1	FDW	ROJO	ANA
    si pongo azul todos los registros cuyo campo color sea azul, si pongo ana todos los registros que contengan ana pero tdo en un mismo store.


    martes, 4 de julio de 2017 14:19

Respuestas

  • En el ejemplo propuesto '@Valor' es una variable, por lo mismo puede contener cualquier valor: 'ANA', 'AZUL', etc. En un procedimiento almacenado debes utilizar parámetros, por ejemplo:

    CREATE PROCEDURE busqueda(@Valor varchar(100))
    AS 
    BEGIN 
        SELECT *
        FROM NombreTabla
        WHERE marca = @Valor OR color = @Valor OR dueño = @Valor;
    END 
    GO
    
    --Ejecutar procedimiento para buscar el valor de 'ANA'
    EXEC busqueda 'ANA';
    GO
    --Ejecutar procedimiento para buscar el valor de 'AZUL'
    EXEC busqueda 'AZUL';
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Emma Grz martes, 4 de julio de 2017 14:56
    martes, 4 de julio de 2017 14:41

Todas las respuestas

  • La expresión de filtro debe comparar un valor contra el valor de cada columna que desees afectar, por ejemplo:

    DECLARE @Valor varchar(100) = 'ANA';
    SELECT
        *
    FROM
        NombreTabla
    WHERE
        marca = @Valor OR color = @Valor OR dueño = @Valor;
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    martes, 4 de julio de 2017 14:30
  • Compañero y si por ejemplo quiero buscar a luis tengo que hacer otro store?
    martes, 4 de julio de 2017 14:35
  • En el ejemplo propuesto '@Valor' es una variable, por lo mismo puede contener cualquier valor: 'ANA', 'AZUL', etc. En un procedimiento almacenado debes utilizar parámetros, por ejemplo:

    CREATE PROCEDURE busqueda(@Valor varchar(100))
    AS 
    BEGIN 
        SELECT *
        FROM NombreTabla
        WHERE marca = @Valor OR color = @Valor OR dueño = @Valor;
    END 
    GO
    
    --Ejecutar procedimiento para buscar el valor de 'ANA'
    EXEC busqueda 'ANA';
    GO
    --Ejecutar procedimiento para buscar el valor de 'AZUL'
    EXEC busqueda 'AZUL';
    GO


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta Emma Grz martes, 4 de julio de 2017 14:56
    martes, 4 de julio de 2017 14:41