代码之家  ›  专栏  ›  技术社区  ›  Sergio Tapia

在Microsoft SQL Server 2008中,我选择哪种数据类型来存储纯文本?

  •  6
  • Sergio Tapia  · 技术社区  · 14 年前

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

    varchar?恩查尔?我搞糊涂了。

    4 回复  |  直到 14 年前
        1
  •  10
  •   Robert Koritnik    14 年前

    SQL Server 2005+等效工具

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

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

    SQL Server 2005之前版本

    在SQL Server 2005版本之前, [n]varchar(max) 不支持类型。你必须使用 [n]text 类型,但它们的存储方式不同,因此与 [n] [ var ]字符 对于开发人员来说,替代方案和操作也更麻烦。

        2
  •  1
  •   Jamiec    14 年前

    它可以是存储字符串数据的任何SQLServer类型。所以nvarchar,varchar,char,nchar。

    一般来说,我选择任何与文本相关的nvarchar,除非100%确定只需要拉丁字符集,在这种情况下,您可以安全地使用varchar。

        3
  •  1
  •   Kaan    14 年前
        4
  •  1
  •   tgolisch    14 年前
    • varchar是最常见的,但它只用于ASCII文本。
    • nvarchar是存储字符串的默认值,因为它使用Unicode。
    • char是固定长度的char。这是相当罕见的。几乎没有人再使用它了。
    • nchar是固定长度的unicode字符。我从没见过它用过。
    • text和ntext是巨大字符串的无限二进制存储。它们不能被索引,因此您可能希望避免它们。