La Web del Programador: Comunidad de Programadores
 
    Pregunta:  57829 - VARIABLE COMO NOMBRE DE CAMPO
Autor:  Jorge Pariona
Tengo problemas con este store procedure, cuando envio el nombre del campo por la variable WHERE @xCampo (se envia el siguiente valor en vb.net @xCampo="RUC") no ejecuta pero si cambio en el WHERE "RUC" si se ejecuta. El valor @xCampo cambia segun los campos de la tabla que se selecciona en un combobox desde VB.net

ALTER PROCEDURE [dbo].[MostrarEmpresas]
@xTipo varchar(65),
@xCampo varchar(65),
@xLike varchar(65)

AS
BEGIN
IF @xTipo = 'Comenzar por'
BEGIN
SELECT EMPRESA.ID_EMPRESA , EMPRESA.RUC , EMPRESA.RAZON_SOCIAL , EMPRESA.DIRECCION , DISTRITO.DESCRIPCION , EMPRESA.CONTACTO , EMPRESA.TELEFONO
FROM EMPRESA INNER JOIN Distrito ON EMPRESA.Id_Distrito=Distrito.Id_Distrito

WHERE @xCampo
LIKE @xLike+'%'
END

  Respuesta:  abel montalvo
Hola espero y entiendas...esta es la idea solo modificala o ajustala a tus necesidades


DECLARE @FormName NVARCHAR(50)='FrmFindTransa'
DECLARE @ColumnName NVARCHAR(50)='FormName'
DECLARE @query nvarchar(MAX)='SELECT FormName FROM dbo.TForms where '+@ColumnName+' like ''%'+@FormName+'%'''
EXEC sp_executesql @query