在打开的数据表的“datagrid”视图中,如何直接在 SSMS 中将换行符键入 nvarchar 字段?

有替代代码吗?

有帮助吗?

解决方案

你不能。

使用“新查询”而是窗口,并进行手动更新:

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)

  • char(10) = - 新行
  • char(13) = - 转到行首

您可以在记事本中准备文本,然后将其粘贴到SSMS中。 SSMS不会显示换行符,但它们在那里,您可以使用select:

进行验证
select *
from YourTable
where Col1 like '%' + char(10) + '%'

我最初遇到了麻烦(不知道为什么)但我终于得到以下内容来使用SSMS for SQL Server 2008。

在varchar类型列的文本中插入ALT-13然后ALT-10(音乐符号和方块出现并在离开行时保存)。最初你离开后会在行的左边收到警告(!)。只需重新执行SELECT语句即可。符号和警告将消失,但CR / LF已保存。如果您希望在HTML中正确显示文本,则必须包含ALT-13。要快速确定是否有效,请将保存的文本从SSMS复制到记事本。

或者,如果你无法使用它,你可以从nvarchar列开始做同样的事情。但是,符号将保存为文本,因此当您完成将符号转换为CR / LF时,必须将列转换为varchar。

如果你想复制&从另一个源(另一行或表,HTML,记事本等)粘贴文本而没有在第一个CR处截断您的文本,我发现在以下链接中引用的解决方案(Programmer's Notepad)与SSMS for 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和从SSMS粘贴文本并保留两种方式(使用程序员的记事本,而不是记事本)。要使文本在HTML中正确显示,您必须将CR添加到复制到SSMS的文本中。执行此操作的最佳方法是使用REPLACE函数执行UPDATE语句以添加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
正如你所指出的,

不起作用。

对于记录,如果您正在进行Web开发,则无论如何都不会在浏览器中显示换行符(它们被解释为额外的空格,并被忽略)。我不得不用

替换换行符
<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语句),它也会在一行中显示一个带有代表控制代码的矩形。

如果您尝试在网格视图中直接输入数据(可能是右键单击TableName和选择打开表),那么您可以输入您的unicode文本字符串以及您想要回车符的任何位置只需使用alt键输入13按下数字键盘。

那将是Alt + 13。这仅适用于数字小键盘,不适用于键盘顶部的数字键。回车将存储为正方形

我发现为不可重复的更新执行此操作的简便方法是使用MS Access并创建链接表,然后根据需要更新数据。我想MS Access团队不会与SMSS团队交谈:)

我尝试使用excel Sheet输入换行符。 我通过写“abc”来输入我的数据。在Excel中的空白单元格下面,然后使用包含“abc”的单元格上方的空单元格更新我的数据库。和带有数据的单元格。我复制粘贴在我的SSMS中的两个单元格。 它对我有用

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top