locked
Como puedo Cambiar un varchar a un Campo??

    Question

  • Tengo el siguiente Codigo :

    USE [Agenda]
    GO

    DECLARE @Campo varchar(50)
    set @return_value = N'ID'

    SELECT * from Contactos where @Campo =1

    GO

    Lo que intento hacer es que el valor del  @Campo sea le nombre del campo pero no me sale 

    Saturday, December 28, 2013 7:50 PM

Answers

All replies

  • Puedes usar SQL dinámico, concatenando en una sentencia el valor de la variable:

    DECLARE @Campo varchar(50) = 'NombreDelCampo'
    DECLARE @Sentencia nvarchar(1000) 
    set @Sentencia = 'SELECT  * from Contactos where ' + @Campo + '=1'
    EXEC @sentencia
    

    Ojo con los atques de inyección de SQL: no permitas que el texto de @Campo sea introducido por un usuario sin validar su contenido.
    Sunday, December 29, 2013 9:07 AM
  • Hola.

    Yo me cuestionaría qué es lo que pretendes realizar, ya que el empleo de SQL dinámico es algo a evitar, y de hecho casi siempre es evitable. Hay formas de lograr lo mismo con código mucho más eficaz, pero debemos saber cuál es el propósito para sugerirte alternativas.


    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    Sunday, December 29, 2013 11:36 AM
  • Al parecer, el OP perdió interés por el tema o lo resolvió por él mismo. Doy el hilo por cerrado.

    Alberto López Grande
    SQL Server MVP
    Visita mi blog en http://qwalgrande.com
    Sígueme en twitter en http://twitter.com/qwalgrande

    Sunday, January 05, 2014 12:58 PM