Как ввести символ новой строки в SQL Server Management Studio
-
06-07-2019 - |
Вопрос
Как в представлении «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.
Автор поста (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.Это сработало для меня