用varchar还是nvarchar 一般用哪个的好,有什么区别啊。
解决方案 »
- textbox 验证控件,为什么是点击按钮才触发验证控件?而不是离开textbox时触发的?
- ASP.NET如何动态创建菜单?
- 在vs2005的c#.net中,listbox的tooltip好象不起作用?
- 救命啊!!!我用C# TcpClient类写了一个邮件发送组件,在windowsform中测试通过,在web中发不出啊!
- 约束文本框的格式问题(快速结帖)
- 如何在页面中点击按钮后弹出确定提示框,当用户确定后程序继续执行(数据保存等程序),急
- 第一次装 Asp.Net Forums 发生以下问题,请问怎么解决?
- 如何dynamic 转换成实际类型 并实例化
- 服务器控件在<form></form>中与不在<form></form>中有什么区别?
- 这下问题严重了!!在线等
- 有什么办法DataGrid一加载的时候,所有数据行都可以编辑??
- 在asp.net中怎么实现只打印datagrid表格(急)
char和varchar的长度都在1到8000之间,它们的区别在于char是定长字符数据,而varchar是变长字符数据。所谓定长就是长度固定的,当输入的数据长度没有达到指定的长度时将自动以英文空格在其后面填充,使长度达到相应的长度;而变长字符数据则不会以空格填充。text存储可变长度的非Unicode数据,最大长度为2^31-1(2,147,483,647)个字符。 后面三种数据类型和前面的相比,从名称上看只是多了个字母"n",它表示存储的是Unicode数据类型的字符。写过程序的朋友对Unicode应该很了解。字符中,英文字符只需要一个字节存储就足够了,但汉字众多,需要两个字节存储,英文与汉字同时存在时容易造成混乱,Unicode字符集就是为了解决字符集这种不兼容的问题而产生的,它所有的字符都用两个字节表示,即英文字符也是用两个字节表示。nchar、nvarchar的长度是在1到4000之间。和char、varchar比较:nchar、nvarchar则最多存储4000个字符,不论是英文还是汉字;而char、varchar最多能存储8000个英文,4000个汉字。可以看出使用nchar、nvarchar数据类型时不用担心输入的字符是英文还是汉字,较为方便,但在存储英文时数量上有些损失。
nchar 是固定长度 Unicode 数据的数据类型,nvarchar 是可变长度 Unicode 数据的数据类型,二者均使用 UNICODE UCS-2 字符集。nchar(n)包含 n 个字符的固定长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。存储大小为 n 字节的两倍。nchar 在 SQL-92 中的同义词为 national char 和 national character。nvarchar(n)包含 n 个字符的可变长度 Unicode 字符数据。n 的值必须介于 1 与 4,000 之间。字节的存储大小是所输入字符个数的两倍。所输入的数据字符长度可以为零。nvarchar 在 SQL-92 中的同义词为 national char varying 和 national character varying。注释
如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。如果希望列中所有数据项的大小接近一致,则使用 nchar。如果希望列中数据项的大小差异很大,则使用 nvarchar。使用 nchar 或 nvarchar 的对象被赋予数据库的默认排序规则,除非使用 COLLATE 子句赋予特定的排序规则。SET ANSI_PADDING OFF 不适用于 nchar 或 nvarchar。SET ANSI_PADDING ON 永远适用于 nchar 和 nvarchar。
是把一个汉字当一个字节用的
varchar里是当2个字节用的