В представлении "datagrid" открытой таблицы данных, как я могу ввести новый символ строки в поле nvarchar непосредственно в SSMS?
Есть ли код alt?
В представлении "datagrid" открытой таблицы данных, как я могу ввести новый символ строки в поле nvarchar непосредственно в SSMS?
Есть ли код alt?
Вы не можете.
Вместо этого используйте окно "новый запрос" и выполните ручное обновление:
UPDATE mytable
SET textvalue =
'This text
can include
line breaks'
WHERE rowid = 1234
Вы можете вставлять строки из текстового редактора, который использует окончание строк в стиле UNIX (CR + LF). Я использую Notepad ++. Сначала перейдите в Настройки/Настройки/Новый документ и измените формат с Windows на Unix. Затем откройте новый документ, введите свои строки и скопируйте их в SSMS.
может работать либо char (13), либо char (10). но рекомендуется использовать char (13) + char (10)
Вы можете подготовить текст в блокноте и вставить его в 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.
Если вы хотите скопировать и вставить текст из другого источника (другую строку или таблицу, HTML, блокнот и т.д.) и не урезать текст в первом CR, я обнаружил, что решение (блокнот программиста), упомянутое в следующая ссылка работает с SSMS для SQL Server 2008 с использованием типов столбцов varchar и nvarchar.
Автор сообщения (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)).
Я использую INSERT 'a' + Char (10) + 'b' INTO, где бы ни было
Ронни,
Сетка данных, похоже, проглатывает любые попытки вставить символ новой строки, включая использование ALT + 010. В Microsoft не указаны сочетания клавиш, которые могли бы помочь. Обычные подозреваемые
<ctrl>enter,
<alt> enter,
<ctrl><alt> enter,
<shift> enter, etc
не работают, как вы указали.
Для записи, если вы занимаетесь веб-разработкой, линейные переводы не будут отображаться в браузере в любом случае (они интерпретируются как дополнительные пробелы и игнорируются). Я должен был заменить строку с помощью
<br>
везде, где я хотел, чтобы в браузере появлялся разрыв строки (текстовые области будут принимать строки в качестве удобного ввода).
Даже если вы можете вставить разрыв строки, я не думаю, что представление сетки данных в SSMS может отображать его.
Попробуйте использовать MS Access. Создайте новый файл и выберите шаблон "Project using existing data". Это создаст файл .adp.
Затем просто откройте таблицу и нажмите Ctrl + Enter для новой строки.
Вставка из буфера обмена также работает правильно.
это работает для меня (просмотр результатов в виде текстовых результатов, так как сетка скрывает символы новой строки)
select '
a
b
'
Вы говорите о том, чтобы щелкнуть правой кнопкой мыши по таблице и выбрать "Edit Top 50 Rows", правильно?
Я попробовал [Ctl] [Enter] и [Alt] [Enter], но ни один из них не работает.
Даже когда я вставляю данные с CR/LF (используя стандартный оператор INSERT), он отображается здесь в одной строке с прямоугольником, представляющим управляющие коды.
Если вы пытаетесь ввести данные непосредственно в таблицу в виде сетки (предположительно щелкните правой кнопкой мыши TableName и выберите Open Table), вы можете ввести текстовую строку в формате unicode и везде, где вы хотите, чтобы каретка возвращала только тип 13 с помощью клавиши alt нажата на цифровой клавиатуре.
Это будет Alt + 13. Это работает только с цифровой клавиатуры и не работает с цифровыми клавишами в верхней части клавиатуры. Возврат каретки будет сохранен как квадрат
Это возможно, если у вас есть существующий символ Newline в строке или другой строке.
Выберите квадрат, который представляет существующий символ Newline, скопируйте его (control-C) и затем вставьте его (control-V), где вы хотите.
Это немного дрянной, но я действительно получил его для работы в SSMS 2008, и мне не удалось получить какие-либо другие предложения (control-enter, alt-13 или any alt - ##).
Я нахожу простой способ сделать это для неповторяющихся обновлений - использовать MS Access и создать связанную таблицу, а затем обновлять данные по мере необходимости. Я думаю, что команда MS Access не разговаривает с командой SMSS:)
Я попытался ввести новый символ линии, используя Excel. Я ввел свои данные, написав "abc" ниже пустой ячейки в Excel, а затем обновил свой db, используя пустую ячейку над ячейкой, содержащую "abc" и ячейку с данными. Я копирую вклеенные обе ячейки в моем SSMS. Это сработало для меня