Pregunta

En la "cuadrícula de datos" vista de una tabla de datos abierta, ¿cómo puedo escribir un nuevo carácter de línea en un campo nvarchar directamente en SSMS?

¿Hay un código alternativo?

¿Fue útil?

Solución

No puedes.

Use una " nueva consulta " ventana en su lugar, y haga una actualización manual:

UPDATE mytable
SET textvalue = 
'This text
can include
line breaks'
WHERE rowid = 1234

Otros consejos

Puede pegar las líneas desde un editor de texto que utiliza terminaciones de línea de estilo UNIX (CR + LF). Yo uso Notepad ++. Primero vaya a Configuración / Preferencias / Nuevo documento y cambie el formato de Windows a Unix. Luego abra un nuevo documento, escriba sus líneas y cópielas en SSMS.

ya sea char (13) o char (10) funcionarían. pero se recomienda usar char (13) + char (10)

  • char (10) = \ n - nueva línea
  • char (13) = \ r - ir al comienzo de la línea

Puede preparar el texto en el bloc de notas y pegarlo en SSMS. SSMS no mostrará las nuevas líneas, pero están allí, como puede verificar con una selección:

select *
from YourTable
where Col1 like '%' + char(10) + '%'

Tuve problemas inicialmente (no sé por qué) pero finalmente conseguí lo siguiente para trabajar con SSMS para SQL Server 2008.

Inserte ALT-13 y luego ALT-10 donde lo desee en su texto en una columna de tipo varchar (el símbolo musical y el cuadrado aparecen y guarde cuando salga de la fila). Inicialmente, aparecerá una advertencia (!) A la izquierda de la fila después de dejarla. Simplemente vuelva a ejecutar su instrucción SELECT. Los símbolos y las advertencias desaparecerán pero se guardará el CR / LF. Debe debe incluir ALT-13 si desea que el texto se muestre correctamente en HTML. Para determinar rápidamente si esto funcionó, copie el texto guardado de SSMS en el Bloc de notas.

Alternativamente, si no puede hacer que esto funcione, puede hacer lo mismo comenzando con una columna nvarchar. Sin embargo, los símbolos se guardarán como texto, por lo que debe convertir la columna a varchar cuando haya terminado de convertir los símbolos a CR / LF.

Si quiere copiar & amp; pegue texto de otra fuente (otra fila o tabla, HTML, Bloc de notas, etc.) y no tenga su texto truncado en el primer CR, descubrí que la solución (Bloc de notas del programador) mencionada en el siguiente enlace funciona con SSMS para SQL Server 2008 usando varchar & amp; tipos de columna nvarchar.

http://dbaspot.com/sqlserver-programming/409451-how-i-enter-linefeed-when-modifying-text-field-2.html#post1523145

El autor de la publicación (dbaspot) menciona algo sobre la creación de consultas SQL, no estoy seguro de lo que quiere decir. Simplemente siga las instrucciones sobre el Bloc de notas del programador y puede copiar & amp; pegue texto hacia y desde SSMS y conserve los LF en ambos sentidos (usando el Bloc de notas del programador, no el Bloc de notas). Para que el texto se muestre correctamente en HTML, debe agregar CR al texto copiado en SSMS. La mejor manera de hacerlo es ejecutando una instrucción UPDATE utilizando la función REPLACE para agregar CR de la siguiente manera:

UPDATE table_name
SET column_name = REPLACE(column_name , CHAR(10), CHAR(13) + CHAR(10)).

Uso INSERT 'a' + Char (10) + 'b' EN DONDE donde sea donde sea

Ronnie,

La cuadrícula de datos parece estar tragándose cualquier intento de pegar un carácter de nueva línea, incluido el uso de ALT + 010. Microsoft no enumera ninguna tecla de acceso directo que pueda ayudar. Los sospechosos habituales

<ctrl>enter, 
<alt> enter, 
<ctrl><alt> enter, 
<shift> enter, etc

no funciona, como usted señaló.

Para el registro, si está haciendo desarrollo web, los avances de línea no aparecerán en el navegador de todos modos (se interpretan como espacios en blanco adicionales y se ignoran). Tuve que reemplazar el avance de línea con

<br> 

en todas partes donde quería que apareciera un salto de línea en el navegador (las áreas de texto aceptarán los avances de línea como entrada utilizable).

Incluso si pudiera insertar un salto de línea, no creo que la vista de cuadrícula de datos en SSMS sea capaz de mostrarlo.

Intente usar MS Access en su lugar. Cree un nuevo archivo y seleccione la plantilla 'Proyecto usando datos existentes'. Esto creará un archivo .adp.

Luego simplemente abra su tabla y presione Ctrl + Enter para una nueva línea.

Pegar desde el portapapeles también funciona correctamente.

Este es posible si tiene un carácter Newline existente en la fila u otra fila.

Seleccione el cuadro cuadrado que representa el carácter Newline existente, cópielo (control-C) y luego péguelo (control-V) donde desee que esté.

Esto es un poco cursi, pero en realidad logré que funcione en SSMS 2008 y no pude obtener ninguna de las otras sugerencias (control-enter, alt-13 o cualquier alt - ##) para trabajar.

esto funciona para mí (Ver resultados como texto; los resultados como cuadrícula ocultan las nuevas líneas)

select '

a 

b

' 

Estás hablando de hacer clic derecho en una tabla y seleccionar " Editar las 50 filas principales " ;, ¿verdad?

Intenté [Ctl] [Enter] y [Alt] [Enter], pero ninguno de esos funciona.

Incluso cuando inserto datos con CR / LF (usando una instrucción INSERT estándar), se muestra aquí en una sola línea con un rectángulo que representa los códigos de control.

Si está intentando ingresar datos directamente en la tabla en la vista de cuadrícula (presumiblemente haga clic con el botón derecho en TableName y seleccione Abrir tabla), entonces puede ingresar su cadena de texto Unicode y donde quiera un retorno de carro simplemente escriba 13 con la tecla alt presionado en el teclado numérico.

Eso sería Alt + 13. Esto funciona solo desde el teclado numérico y no funciona con las teclas numéricas en la parte superior del teclado. El retorno de carro se almacenará como un cuadrado

Creo que la manera fácil de hacerlo para actualizaciones no repetibles es usar MS Access y crear una tabla vinculada, luego actualizar los datos según lo necesite. Supongo que el equipo de MS Access no habla con el equipo de SMSS :)

Intenté ingresar un nuevo carácter de línea usando una hoja Excel. Ingresé mis datos escribiendo "abc" debajo de una celda en blanco en Excel y luego actualicé mi db usando la celda vacía encima de la celda que contiene "abc" y la celda con datos. Copié y pegué ambas celdas en mi SSMS. Funcionó para mí

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top