我有一个名为 ABC 的表。在此表中,我有一列定义为 XYZ
varchar(8000).
在此列中,我存储 SOAP 错误请求。
我的问题是,现在我得到的 SOAP 错误请求的长度超过
8000 (to be accurate it is now 16000).
我读到 varchar
的最大长度是 8000,所以我的问题是如何将列 XYZ 的长度增加到 16000?
最佳答案
如果确实需要超过 8000 个字符,则需要使用 VARCHAR(MAX)
,它最多可以存储 2 GB 的文本:
XYZ varchar(max)
这为您提供了最多 20 亿个字符 - 大约是列夫·托尔斯泰 (Leo Tolstoj) 的 war 与和平的 200 倍 - 对于大多数情况来说应该足够了!
注意:如果您收到 SOAP 请求,该请求很可能是格式正确的 XML - 对吗?在这种情况下,您还可以使用 SQL Server 2005 及更高版本的 XML
数据类型。它还存储最多 2 GB 的数据,但它比普通的 varchar(max)
存储数据更有效 - 并且您可以对其运行 XPath/XQuery 以从中获取位。
所以我建议您使用:
XYZ XML
关于sql - SQL Server 2005中如何在列中存储超过8000个字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14209034/