为这个相当基本的问题道歉。
我有一个动态构建的错误字符串。字符串中的数据是由各种第三方传递的,所以我没有任何控制权,也不知道字符串的最终大小。
我有一个当前记录详细信息的事务表,我想包含该字符串,以便在必要时可以引用它。
2个问题:
- 我应该如何将它存储在数据库中?
- 我是否应该做其他事情,例如在代码中约束字符串?
我正在使用 Sql Server 2008 Web。
为这个相当基本的问题道歉。
我有一个动态构建的错误字符串。字符串中的数据是由各种第三方传递的,所以我没有任何控制权,也不知道字符串的最终大小。
我有一个当前记录详细信息的事务表,我想包含该字符串,以便在必要时可以引用它。
2个问题:
我正在使用 Sql Server 2008 Web。
您可以使用 SQL Server nvarchar(MAX)
。
也看看这个。
最终,您可以启用和使用 SQL Server 2008 的 FILESTREAM 功能(WEB 版支持),处理文档意义上的超大量数据。
当然,您需要确保您将使用此服务的好处。
如果要存储非 unicode 文本,可以使用:
varchar(max) or nvarchar(max)
最大长度为 2GB。
其他替代方案是:
binary or varbinary
缺点:您无法搜索这些字段并对其进行索引和排序,最大大小:2GB。
有 TEXT 和 NTEXT 之分,但以后会弃用,所以不建议使用。它们具有与二进制相同的缺点。
所以最好的选择是 varchar(max) 或 nvarchar(max) 之一。