我选择在Microsoft SQL Server 2008中存储纯文本的数据类型是什么?

时间:2010-06-21 15:52:07

标签: c# sql sql-server string

例如,我的C#(Linq-to-SQL)中有一个字符串字段Name; SQL字段必须是什么数据类型?

VARCHAR? NCHAR?我很困惑。

4 个答案:

答案 0 :(得分:10)

SQL Server 2005+等效

与C#String等效的最佳SQL类型是nvarchar(max)。它存储与C#String对象实例完全相同的文本量。但要注意。选择其他[n][var]char类型在数据存储上会更优化(意味着它们可以更快地工作),但选择其中一种很大程度上取决于您希望存储的数据。

  • char(n)用于固定长度的字符串(长度为n),因此如果您的字符串大小不同,您可以选择此类型(即产品密钥)
  • varchar(n)用于长度为n的变量字符串长度(即电子邮件地址)
  • varchar(max)用于长度不超过2G字符的变量字符串长度,因此基本上与C#String类型相同(即博客文章内容)
  • n 添加到这些类型中,并且您的数据以双字节(unicode)存储,因此您的字符串在多语言应用程序中更加通用

Pre SQL Server 2005

在SQL Server 2005版之前,不支持[n]varchar(max)类型。您必须使用[n]text类型,但它们的存储方式不同,因此与[n][var]char替代方案相比速度要慢得多,而且开发人员处理和操作也比较麻烦。

答案 1 :(得分:1)

它可以是存储字符串数据的任何SQLServer类型。所以NVarchar,Varchar,Char,NChar。

一般情况下,我选择制作任何与文本相关的NVarchar,unles im 100%确定只需要拉丁字符集,在这种情况下你可以安全地使用Varchar。

答案 2 :(得分:1)

答案 3 :(得分:1)

  • Varchar是最常见的,但它仅用于ASCII文本。
  • NVarchar是存储字符串的默认设置,因为它适用于Unicode。
  • Char是固定长度的char。这是非常罕见的。几乎没有人再使用它了。
  • NChar是固定长度的unicode char。我从来没有见过它。
  • Text和NText是大字符串的无限二进制存储。它们无法编入索引,因此您可能希望避免使用它们。