例如,我的C#(Linq-to-SQL)中有一个字符串字段Name; SQL字段必须是什么数据类型?
VARCHAR? NCHAR?我很困惑。
答案 0 :(得分:10)
与C#String
等效的最佳SQL类型是nvarchar(max)
。它存储与C#String
对象实例完全相同的文本量。但要注意。选择其他[n][var]char
类型在数据存储上会更优化(意味着它们可以更快地工作),但选择其中一种很大程度上取决于您希望存储的数据。
char(n)
用于固定长度的字符串(长度为n),因此如果您的字符串大小不同,您可以选择此类型(即产品密钥)varchar(n)
用于长度为n的变量字符串长度(即电子邮件地址)varchar(max)
用于长度不超过2G字符的变量字符串长度,因此基本上与C#String
类型相同(即博客文章内容)在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)
我总是喜欢选择nvarchar:Differences between varchar and nvarchar in SQL Server
答案 3 :(得分:1)