Carácter de escape para las comillas simples en T-SQL

Esta mañana me ha surgido la necesidad de generarme codigo mediante una select y precisaba que esta select generara otras selects, tras un ratillo de busqueda he encontrado que para generar unas comillas simple basta con poner dos.

Ej:
select 'insert into modulo (nombre, ruta) values (''' + nombre + ''', ''' + ruta +''')' from Modulo

3 comentarios:

Unknown 17 de octubre de 2010, 18:49  

Muchas gracias por la ayuda, me sirvio bastante aunque me parece que falta aclarar que toca colocar "dos comillas simples"

castel32 3 de mayo de 2012, 4:42  

Dependiendo del caso, hay que añadir dos o tres comillas. Para Comilla como primer o último caracter, necesita 3 y para las que hay en el medio del texto necesita 2.
Dejo un ejemplo de una Querie generada para ORACLE desde SQL Server:
Saludos y gracias,


select 'select ACT.net_sales, ANT.net_sales, ((ACT.net_sales/ANT.net_sales) -1)*100 inc_ventas, ACT.transcount, ANT.transcount, ((ACT.transcount/ANT.transcount) -1)*100 inc_visitas
from
(
select sum(net_sales)net_sales, sum(transcount)transcount
from cmbi_sales_total A inner join cmbi_stores B ON a.store_id=b.res_id
where
business_date between to_date(''',@Dia_1_ACT,''',''yyyy/mm/dd'') and to_date(''',@Dia_N_ACT,''',''yyyy/mm/dd'')
and
b.fec_ape<=to_date(''',@Dia_1_ANT,''',''yyyy/mm/dd'')and (b.fec_cie>to_date(''',@Dia_N_ACT,''',''yyyy/mm/dd'') or b.fec_cie is null )
and
b.res_nom not like ''Andorra%''
)ACT
,
(
select sum(net_sales)net_sales, sum(transcount)transcount
from cmbi_sales_total A inner join cmbi_stores B ON a.store_id=b.res_id
where
business_date between to_date(''',@Dia_1_ANT,''',''yyyy/mm/dd'') and to_date(''',@Dia_N_ANT,''',''yyyy/mm/dd'')
and
b.fec_ape<=to_date(''',@Dia_1_ANT,''',''yyyy/mm/dd'')and (b.fec_cie > to_date(''',@Dia_N_ACT,''',''yyyy/mm/dd'') or b.fec_cie is null )
and
b.res_nom not like ''Andorra%''
)ANT

Anónimo 12 de octubre de 2012, 0:38  

Funciona!!! Gracias!!!!

Buscar este blog

Seguidores

Blogs amigos