Sql server 是否可以在SQL Server中存储格式化文本?

Sql server 是否可以在SQL Server中存储格式化文本?,sql-server,text,formatting,Sql Server,Text,Formatting,例如,我想在表中插入类似的内容,并使其保留文本的格式属性,以便以后检索: 前 另外,如果字母的大小改变了,它还会工作吗?将其存储为NVARCHAR,并且它将保留您插入的内容。如果“大小”指的是长度而不是字体大小,则这受设置的列大小的限制。8000字节是NVARCHAR或VARCHAR的最大值,即NVARCHAR(最大)或NVARCHAR(4000) 任何视觉格式,如字体类型、字体大小、颜色、强调等,都应该由前端应用程序处理。记住SQL Server存储数据。。。它不是GUI。因此,存储HTML或

例如,我想在表中插入类似的内容,并使其保留文本的格式属性,以便以后检索:


另外,如果字母的大小改变了,它还会工作吗?

将其存储为
NVARCHAR
,并且它将保留您插入的内容。如果“大小”指的是长度而不是字体大小,则这受设置的列大小的限制。8000字节是
NVARCHAR
VARCHAR
的最大值,即
NVARCHAR(最大)
NVARCHAR(4000)


任何视觉格式,如字体类型、字体大小、颜色、强调等,都应该由前端应用程序处理。记住SQL Server存储数据。。。它不是GUI。因此,存储HTML或CSS格式是一种糟糕的做法,并不是它的目的

将其存储为
NVARCHAR
,它将保留您插入的内容。如果“大小”指的是长度而不是字体大小,则这受设置的列大小的限制。8000字节是
NVARCHAR
VARCHAR
的最大值,即
NVARCHAR(最大)
NVARCHAR(4000)


任何视觉格式,如字体类型、字体大小、颜色、强调等,都应该由前端应用程序处理。记住SQL Server存储数据。。。它不是GUI。因此,存储HTML或CSS格式是一种很差的做法,并不是它的目的

要存储格式,需要有某种标记。HTML可能会起作用。如果这将显示在浏览器中,请清理该值以避免任何可能的安全问题

如果使用HTML,文字存储值可能是:

<strong>This</strong> is a <i>sentence</i>
这是一个句子
编辑:注意到WPF标记,它具有与HTML不同的格式标记。这个想法仍然是一样的

<Bold>This</Bold> is a <Italic>sentence</Italic>
这是一个句子
Edit2:不知道为什么WPF标签被删除了,问题中的“格式化”示例被更改了,哈哈。堆栈溢出似乎是一个奇怪的地方

因为它是被提出的,是的,带标记的文本不是纯粹的关系数据,所以理论上它不应该存在于关系数据库中

然而,现实中,有些情况下,以另一种方式存储格式会违反直觉/成本高昂(人们会想到带有修改动态数据的富文本框的内容管理系统)


因此,只要开发人员知道后果是什么,它没有被错误和盲目地使用(将静态/从不更改的内容放入数据库而不是文件),并且他/她得到了他/她的友好邻里DBA的祝福,就可以使用它。

要存储格式,需要有某种标记。HTML可能会起作用。如果这将显示在浏览器中,请清理该值以避免任何可能的安全问题

如果使用HTML,文字存储值可能是:

<strong>This</strong> is a <i>sentence</i>
这是一个句子
编辑:注意到WPF标记,它具有与HTML不同的格式标记。这个想法仍然是一样的

<Bold>This</Bold> is a <Italic>sentence</Italic>
这是一个句子
Edit2:不知道为什么WPF标签被删除了,问题中的“格式化”示例被更改了,哈哈。堆栈溢出似乎是一个奇怪的地方

因为它是被提出的,是的,带标记的文本不是纯粹的关系数据,所以理论上它不应该存在于关系数据库中

然而,现实中,有些情况下,以另一种方式存储格式会违反直觉/成本高昂(人们会想到带有修改动态数据的富文本框的内容管理系统)


因此,只要开发人员知道后果是什么,它没有被错误和盲目地使用(将静态/从不更改的内容放入数据库而不是文件),并且他/她从他/她友好的邻居DBA那里得到了祝福,就可以使用它。

将HTML标记存储在数据库中而不是在GUI中处理它们是一个糟糕的主意。它把一个方形的钉子塞进了一个圆孔。这就像在全国各地倒车一样。仅仅因为技术上是可能的并不意味着我应该同意你的观点。问题是这是否可能,而不是是否应该这样做。这就是为什么我提到卫生,以确保只有格式化通过。这是最直接的答案,但更可靠的解决方案是一个有限的自制标记(即[b]这[/b]是一个[I]句子[/I]),因此它是专有的,并且仍然告诉UI如何正确显示它。尽管你引入了消毒和一个答案,这可能会打开一扇大门,让一系列来自不良实践的后续问题迎刃而解。如果有人问如何在SQL Server中使用基于集合的循环执行X,而更明智的选择是使用基于集合的操作,则不应推广循环逻辑。一定要强调最佳实践和解决方案,至少要考虑性能和安全性。干杯,伙计。谢谢你的回答,托马斯。旁注-我最初的问题是由管理员编辑的,这就是为什么你看到标签WPF被删除,我的格式化示例被更改。将HTML标签存储在数据库中而不是在GUI中处理它们是一个糟糕的主意。它把一个方形的钉子塞进了一个圆孔。这就像在全国各地倒车一样。仅仅因为技术上是可能的并不意味着我应该同意你的观点。问题是这是否可能,而不是是否应该这样做。这就是为什么我提到卫生,以确保只有格式化通过。这是最直接的答案,但更可靠的解决方案是一个有限的自制标记(即[b]这[/b]是一个[I]句子[/I]),因此它是专有的,并且仍然告诉UI如何正确显示它。尽管你引入了消毒和一个答案,这可能会打开一扇大门,让一系列来自不良实践的后续问题迎刃而解。如果有人问如何在SQL Server中使用基于集合的循环执行X,而更明智的选择是使用基于集合的操作,那么应该