Líneas Nuevas en Cadenas

Enter Para Líneas Nuevas

Para construir cadenas con líneas nuevas, normalmente se usa la tecla Enter. En vez de usar enter, se puede usar varios valores de CHAR para insertar líneas nuevas en una cadena. Esto es muy útil para direcciones, reportes, etcétera.

La cadena normal aparece asi:

declare @Text1 varchar(30) = 'Línea 1
Línea 2'

select @Text1 
go
---------------------
Línea 1
Línea 2

(1 row(s) affected)

Esto funciona perfectamente bien, cuando se crean cadenas de varias líneas, el SQL se hace difícil para leer.

Usar CHAR(10) Para Líneas Nuevas

Otra opción para líneas nuevas en cadenas es el carácter ASCII CHAR(10) o CR. Este carácter es el genera la línea nueva en su editor favorito. El CHAR(10) se define de esta manera:

declare @CRLF CHAR(1)
set @CRLF = CHAR(10)
Ahora @CRLF se puede usar para generar líneas nuevas in las cadenas. Simplemente agregue el @CRLF entre las cadenas en esta manera:
declare @CRLF CHAR(1)
declare @Text1 varchar(10) = 'Línea 1'
declare @Text2 varchar(10) = 'Línea 2'

set @CRLF = CHAR(10)

select @Text1 + @CRLF + @Text2
go
---------------------
Línea 1
Línea 2

(1 row(s) affected)

Igualmente, se puede usar para líneas más complicadas:

declare @CRLF CHAR(1)
set @CRLF = CHAR(10)

declare @SQL NVARCHAR(MAX)

set @SQL = 'select top 200 * ' + @CRLF
+ 'from Person.CountryRegion ' + @CRLF
+ 'order by CountryRegionCode '

print @SQL
go
select top 200 * 
from Person.CountryRegion 
order by CountryRegionCode

Para ejecutar el comando, simplemente cambie el print @SQL a exec (@SQL).

declare @CRLF CHAR(1)
set @CRLF = CHAR(10)

declare @SQL NVARCHAR(MAX)

set @SQL = 'select top 200 * ' + @CRLF
+ 'from Person.CountryRegion ' + @CRLF
+ 'order by CountryRegionCode '

exec (@SQL)
go

Usar CHAR(10)+CHAR(13)

Si tiene problemas con el formato, tambien se puede usar CHAR(13) y CHAR(10).

-- Se cambia a CHAR(2) 
declare @CRLF CHAR(2)
set @CRLF = CHAR(13)+CHAR(10)

Funciona igual que CHAR(10), pero si hay problemas con el formato, simplemente cambie a este.


Posted

in

,

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *