Stack Overflow en español Asked by Pedro Carvajal on January 1, 2022
Estoy intentando hacer formatos de HTML dinámicos… el formato ya esta construido, solo se tiene que cambiar la consulta que tiene el formato por el dato de la tabla Compradores
.
DECLARE @HTMLFormato VARCHAR(MAX)
SET @HTMLFormato = (
SELECT Formato
from Formatos
inner join Compradores on 1 = 1
where FormatoId = 2 and CompradorId = 14
)
return @HTMLFormato
El campo Formato contiene: '<p>ingrese su texto aquí...<span>'+ CAST( (TerNombre) AS VARCHAR)+'</span>Texto del formato</p>'
Como si estuviera haciendo el select directamente al string así:
SELECT '<p>ingrese su texto aqui...<span>'+ CAST( (TerNombre) AS VARCHAR)+'</span>Texto del formato</p>'
from Formatos
inner join Compradores on 1 = 1
where FormatoId = 2 and CompradorId = 14
Y me retornaría: '<p>ingrese su texto aqui...<span>'Nombre Comprador'</span>Texto del formato</p>'
Pero me esta retornando el campo Formato
como tal, sin sustituir los datos.
Dado que lo que tu tienes almacenado en la tabla Formato
es un fragmento de consulta SQL, para lograr tu objetivo puedes construir la consulta completa en una variable y ejecutarla dinámicamente con invocando a sp_executesql
.
Por ejemplo:
declare @HTMLFormato varchar(max);
declare @SQL nvarchar(max);
select @HTMLFormato = Formato
from Formatos
where FormatoId = 2;
set @SQL = 'select ' + @HTMLFormato + ' from Compradores where CompradorID = 14';
exec sp_executesql @SQL;
Si el SQL construido es válido, te daría como resultado:
-------------------------------------------------------------------------------------------
<p>ingrese su texto aquí...<span>Juan Pérez</span>Texto del formato</p>
(1 row affected)
Puedes también invocar a print
para ver el contenido de tu consulta antes de ejecutarla:
print @SQL;
A mi me arroja:
select '<p>ingrese su texto aquí...<span>'+ CAST( (TerNombre) AS VARCHAR)+'</span>Texto del formato</p>' from Compradores where CompradorID = 14
Completion time: 2020-07-24T11:21:31.4112583-06:00
Answered by jachguate on January 1, 2022
1 Asked on November 27, 2021 by deathgran2015
0 Asked on November 27, 2021 by jpcruz
1 Asked on November 27, 2021 by pike
0 Asked on November 27, 2021 by elloko36
1 Asked on November 27, 2021 by user183006
1 Asked on November 27, 2021 by elton
0 Asked on November 27, 2021 by carlos-enrique-gil-gil
1 Asked on November 24, 2021 by francisco-javier-lopez-perez
1 Asked on November 24, 2021 by javier-cruz
1 Asked on November 24, 2021 by marcos-galaviz
Get help from others!
Recent Questions
Recent Answers
© 2023 AnswerBun.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP