Как ввести символ новой строки в SQL Server Management Studio - PullRequest
38 голосов
/ 18 июня 2009

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

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

Ответы [ 14 ]

28 голосов
/ 18 июня 2009

Вы не можете.

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

UPDATE mytable
SET textvalue = 
'This text
can include
line breaks'
WHERE rowid = 1234
16 голосов
/ 31 августа 2012

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

8 голосов
/ 22 октября 2010

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

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

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

select *
from YourTable
where Col1 like '%' + char(10) + '%'
2 голосов
/ 26 июня 2012

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

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

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

Если вы хотите скопировать и вставить текст из другого источника (другой строки или таблицы, 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)).
1 голос
/ 23 января 2011

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

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

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

1 голос
/ 29 августа 2010

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

Затем просто откройте ваш стол и нажмите Ctrl + Введите для новой строки.

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

1 голос
/ 18 июня 2009

Ронни,

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

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

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

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

<br> 

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

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

1 голос
/ 18 июня 2009

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

0 голосов
/ 07 марта 2017

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...