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
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP