Pergunta

Na visão "datagrid" de uma tabela aberta de dados, como posso digitar um caractere de nova linha em um campo nvarchar diretamente no SSMS?

Existe um código de alt?

Foi útil?

Solução

Você não pode.

Use a janela "nova consulta" em vez, e fazer uma atualização manual:

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

Outras dicas

Você pode colar as linhas a partir de um editor de texto que usa finais de linha de estilo UNIX (CR + LF). Eu uso o Notepad ++. Primeiro, vá para Configurações / Preferências / New Document e alterar o formato do Windows para o Unix. Em seguida, abra um novo documento, digite suas linhas, e copiá-los para SSMS.

quer char (13) ou char (10) iria funcionar. mas recomenda-se a utilização char (13) + char (10)

  • CHAR (10) = \ N - nova linha
  • char (13) = \ r - Vá para o início da linha

Você pode preparar o texto no bloco de notas, e colá-lo no SSMS. SSMS não irá exibir as novas linhas, mas eles estão lá, como você pode verificar com um select:

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

Eu tive problemas inicialmente (não sei porquê), mas eu finalmente tenho o seguinte para o trabalho com SSMS para SQL Server 2008.

Inserir ALT-13, em seguida, ALT-10, onde desejado em seu texto em uma coluna do tipo varchar (símbolo de música e quadrado aparecer e salvar quando você sair da linha). Inicialmente você receberá um aviso (!) À esquerda da linha depois de deixá-lo. Apenas re-excecute sua instrução SELECT. Os símbolos e aviso desaparecerá, mas o CR / LF é salvo. Você deve incluem ALT-13 se você deseja que o texto exibido corretamente em HTML. Para determinar rapidamente se isso funcionou, copie o texto salvo de SSMS para o bloco de notas.

Como alternativa, se você não pode chegar a este trabalho, você pode fazer a mesma coisa que começa com uma coluna nvarchar. No entanto, os símbolos serão salvas como texto para que você deve converter a coluna para varchar quando estiver pronto para converter os símbolos para CR / IFT.

Se você quiser copiar e colar texto de outra fonte (outra linha ou tabela, HTML, bloco de notas, etc.) e não ter seu texto truncado no primeiro CR, descobri que a solução (o bloco de notas do programador) referido no link a seguir trabalha com SSMS para SQL Server 2008 usando varchar & tipos de coluna nvarchar.

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

O autor do post (dbaspot) menciona algo sobre a criação de consultas SQL - não sei o que ele quer dizer. Basta seguir as intruções sobre o bloco de notas do programador e você pode copiar e colar texto de e para SSMS e reter os LFs em ambos os sentidos (usando o bloco de notas do programador, não Notepad). Para ter a visualização do texto corretamente em HTML que você deve adicionar CRs ao texto copiado para SSMS. A melhor maneira de fazer isso é através da execução de uma instrução UPDATE usando a função REPLACE para adicionar CRs da seguinte forma:

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

I usar INSERT 'a' + Char (10) + 'b' INTO onde quer ONDE qualquer que seja

Ronnie,

A grade de dados parece estar engolindo qualquer tentativa para colar um caractere de nova linha, incluindo o uso de ALT + 010. A Microsoft não listar quaisquer teclas de atalho que ajudariam. Os suspeitos do costume

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

não funcionam, como você apontou.

Para o registro, se você estiver fazendo o desenvolvimento web, os linefeeds não aparecem no navegador de qualquer maneira (eles são interpretados como espaços em branco extra, e são ignorados). Eu tive que substituir avanço de linha com

<br> 

em todos os lugares que eu queria uma quebra de linha para aparecer no navegador (áreas de texto aceitará alimentações de linha como entrada utilizável).

Mesmo que você pode inserir uma quebra de linha, eu não acho que a exibição de grade de dados no SSMS é capaz de exibi-lo.

Tente usar MS Access em vez. Criar um novo arquivo e selecione 'Project usando dados existentes' template. Isto irá criar .adp arquivo.

Em seguida, basta abrir sua mesa e pressione Ctrl + Enter para a nova linha.

colar a partir da área de transferência também funciona corretamente.

Este é possível se você tiver um caractere de nova linha existente na linha ou outra linha.

Selecione o quadrado-box que representa o caractere de nova linha existente, copie-o (control-C), e depois colá-lo (control-V) onde quer que seja.

Este é um pouco brega, mas eu realmente fiz obtê-lo para trabalhar em SSMS 2008 e não foi capaz de obter qualquer uma das outras sugestões (control-enter, alt-13, ou qualquer alt - ##) para trabalhar.

Isso funciona para mim (Ver resultados como texto - Resultados como peles de grade as novas linhas)

select '

a 

b

' 

Você está falando de botão direito do mouse sobre uma mesa e selecionando "Editar Top 50 linhas", certo?

Eu tentei [Ctl] [Enter] e [Alt] [Enter], mas nenhuma dessas obras.

Mesmo quando inserção de dados com CR / LF (usando uma instrução INSERT padrão), mostra-se aqui de uma única linha com um rectângulo representando os códigos de controlo.

Se você está tentando inserir dados diretamente na tabela na vista de grelha (presumivelmente direito Clique TableName e selecione a tabela Open), então você pode entrar em sua cadeia de texto de unicode e onde quiser um retorno de carro basta digitar 13 com a tecla Alt pressionado no teclado numérico.

Isso seria Alt + 13. Isso funciona apenas a partir do teclado numérico e não funciona com as teclas numéricas na parte superior do teclado. O retorno de carro será armazenado como um quadrado

Acho que a maneira mais fácil de fazê-lo para atualizações que não se repete é a utilização de MS Access e criar uma tabela ligada, em seguida, atualizar os dados que você precisa. Eu acho que a equipe de MS Access não falar com a equipe SMSS:)

Eu tentei entrar em um caractere de nova linha usando uma folha de Excel. Entrei no meu dados, por escrito "abc" abaixo de uma célula em branco no Excel e, em seguida, atualizei meu db usando a célula vazia acima da célula que contém "abc" e a célula com dados. Eu copiar colado tanto as células em meus SSMS. Ela trabalhou para mim

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top