Подтвердить что ты не робот

Как ввести новый символ строки в SQL Server Management Studio

В представлении "datagrid" открытой таблицы данных, как я могу ввести новый символ строки в поле nvarchar непосредственно в SSMS?

Есть ли код alt?

4b9b3361

Ответ 1

Вы не можете.

Вместо этого используйте окно "новый запрос" и выполните ручное обновление:

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

Ответ 2

Вы можете вставлять строки из текстового редактора, который использует окончание строк в стиле UNIX (CR + LF). Я использую Notepad ++. Сначала перейдите в Настройки/Настройки/Новый документ и измените формат с Windows на Unix. Затем откройте новый документ, введите свои строки и скопируйте их в SSMS.

Ответ 3

может работать либо char (13), либо char (10). но рекомендуется использовать char (13) + char (10)

  • char (10) =\n - новая строка
  • char (13) =\r - перейти к началу строки

Ответ 4

Вы можете подготовить текст в блокноте и вставить его в SSMS. SSMS не отображает символы новой строки, но они есть, так как вы можете проверить с помощью select:

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

Ответ 5

У меня были проблемы изначально (не знаю почему), но я, наконец, получил следующее, чтобы работать с SSMS для SQL Server 2008.

Вставьте ALT-13, затем ALT-10, где желательно в тексте в столбце типа varchar (символ музыки и квадрат появляются и сохраняются, когда вы покидаете строку). Сначала вы получите предупреждение (!) Слева от строки после его останова. Просто переубедите инструкцию SELECT. Символы и предупреждения исчезнут, но CR/LF будет сохранен. Вы должны включать ALT-13, если вы хотите, чтобы текст отображался правильно в HTML. Чтобы быстро определить, работает ли это, скопируйте сохраненный текст из SSMS в Блокнот.

В качестве альтернативы, если вы не можете заставить это работать, вы можете сделать то же самое, начиная с столбца nvarchar. Однако символы будут сохранены как текст, чтобы вы должны преобразовать столбец в varchar, когда вы закончите преобразовывать символы в CR/LF.

Если вы хотите скопировать и вставить текст из другого источника (другую строку или таблицу, HTML, блокнот и т.д.) и не урезать текст в первом CR, я обнаружил, что решение (блокнот программиста), упомянутое в следующая ссылка работает с SSMS для SQL Server 2008 с использованием типов столбцов varchar и nvarchar.

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

Автор сообщения (dbaspot) упоминает что-то о создании SQL-запросов - не уверен, что он имеет в виду. Просто следуйте инструкциям о Блокноте Блокнот, и вы можете копировать и вставлять текст в SSMS и из него и сохранять LF в обоих направлениях (используя Блокнот программиста, а не Блокнот). Чтобы текст отображался правильно в HTML, вы должны добавить CR в текст, скопированный в SSMS. Лучший способ сделать это - выполнить инструкцию UPDATE, используя функцию REPLACE, чтобы добавить CR следующим образом:

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

Ответ 6

Я использую INSERT 'a' + Char (10) + 'b' INTO, где бы ни было

Ответ 7

Ронни,

Сетка данных, похоже, проглатывает любые попытки вставить символ новой строки, включая использование ALT + 010. В Microsoft не указаны сочетания клавиш, которые могли бы помочь. Обычные подозреваемые

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

не работают, как вы указали.

Для записи, если вы занимаетесь веб-разработкой, линейные переводы не будут отображаться в браузере в любом случае (они интерпретируются как дополнительные пробелы и игнорируются). Я должен был заменить строку с помощью

<br> 

везде, где я хотел, чтобы в браузере появлялся разрыв строки (текстовые области будут принимать строки в качестве удобного ввода).

Даже если вы можете вставить разрыв строки, я не думаю, что представление сетки данных в SSMS может отображать его.

Ответ 8

Попробуйте использовать MS Access. Создайте новый файл и выберите шаблон "Project using existing data". Это создаст файл .adp.

Затем просто откройте таблицу и нажмите Ctrl + Enter для новой строки.

Вставка из буфера обмена также работает правильно.

Ответ 9

это работает для меня (просмотр результатов в виде текстовых результатов, так как сетка скрывает символы новой строки)

select '

a 

b

' 

Ответ 10

Вы говорите о том, чтобы щелкнуть правой кнопкой мыши по таблице и выбрать "Edit Top 50 Rows", правильно?

Я попробовал [Ctl] [Enter] и [Alt] [Enter], но ни один из них не работает.

Даже когда я вставляю данные с CR/LF (используя стандартный оператор INSERT), он отображается здесь в одной строке с прямоугольником, представляющим управляющие коды.

Ответ 11

Если вы пытаетесь ввести данные непосредственно в таблицу в виде сетки (предположительно щелкните правой кнопкой мыши TableName и выберите Open Table), вы можете ввести текстовую строку в формате unicode и везде, где вы хотите, чтобы каретка возвращала только тип 13 с помощью клавиши alt нажата на цифровой клавиатуре.

Это будет Alt + 13. Это работает только с цифровой клавиатуры и не работает с цифровыми клавишами в верхней части клавиатуры. Возврат каретки будет сохранен как квадрат

Ответ 12

Это возможно, если у вас есть существующий символ Newline в строке или другой строке.

Выберите квадрат, который представляет существующий символ Newline, скопируйте его (control-C) и затем вставьте его (control-V), где вы хотите.

Это немного дрянной, но я действительно получил его для работы в SSMS 2008, и мне не удалось получить какие-либо другие предложения (control-enter, alt-13 или any alt - ##).

Ответ 13

Я нахожу простой способ сделать это для неповторяющихся обновлений - использовать MS Access и создать связанную таблицу, а затем обновлять данные по мере необходимости. Я думаю, что команда MS Access не разговаривает с командой SMSS:)

Ответ 14

Я попытался ввести новый символ линии, используя Excel. Я ввел свои данные, написав "abc" ниже пустой ячейки в Excel, а затем обновил свой db, используя пустую ячейку над ячейкой, содержащую "abc" и ячейку с данными. Я копирую вклеенные обе ячейки в моем SSMS. Это сработало для меня