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

StackOverflow https://stackoverflow.com/questions/1014447

Вопрос

Как в представлении «datagrid» открытой таблицы данных ввести новый символ строки в поле nvarchar непосредственно в SSMS?

Есть ли альтернативный код?

Это было полезно?

Решение

Вы не можете.

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

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

Другие советы

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

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

  • char(10) = — новая строка
  • char(13) = — перейти в начало строки

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

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

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

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

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

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

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

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

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

Я использую INSERT 'a' + Char (10) + 'b' INTO везде, где ГДЕ, независимо от того,

Ронни,

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

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

не работает, как вы отметили.

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

<br> 

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

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

Попробуйте использовать MS Access. Создайте новый файл и выберите шаблон «Проект с использованием существующих данных». Это создаст файл .adp.

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

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

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

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

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

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

select '

a 

b

' 

Вы говорите о щелчке правой кнопкой мыши по таблице и выборе " Изменить топ-50 строк " ;, верно?

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

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

Если вы пытаетесь ввести данные непосредственно в таблицу в виде сетки (предположительно, щелкните правой кнопкой мыши Имя таблицы и выберите Открыть таблицу), тогда вы можете ввести текстовую строку в кодировке Юникод, и в любое место, где вы хотите возврат каретки, просто введите 13 с помощью клавиши alt. нажата на цифровой клавиатуре.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top