哪位能通俗详细的介绍一下sqlserver的数据类型,我是新手 例如:text vachar的允许长度。不要msdn粘贴的。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 但是msdn的已经是很全的了。varchar在2000和2005+有不同的限制。2005以后的版本可以多很多。 数值类型 数据类型 描述 存储大小 Bit 值为1,0,null的整数数据,不包含索引 1字节 tinyInt 0-255整数数据 1字节 smallInt -2的15次方到2的15次方的整数数据 4字节 int -2的31次方到2的31次方的整数数据 4字节 bigint 8字节的整数数据 8字节 Binary[n] N字节的固定长度的二进制数据,n是介于1-8000之间的一个值。当一列的数据输入差别很小时,请使用binary N+2字节 Varbinary[n] N字节的可变长度的二进制数据,n是介于1-8000之间的一个值。当一列的数据输入差别很大时,请使用Varbinary N+2,可以为0 Varbinary(max) 2005新类型,最大2g,变长 N+2,可以为0 Decimal[p,[s]] 固定精度和刻度的数字。精度(p)指被保存数字的总位数,刻度(s)指定数字的小数点后面的位数。 5-17字节 Numeric[p,[s]] Decimal的同义词 Real 4字节的浮点精度数字数据 4字节 Float[(n)] -1.79e+308至-2.23e-308.0以及2.23e-308至1.79e+308 取决于n的值 Money 货币数据。8字节,精确到货币单位的万分之一。 8字节 Smallmoney 货币数据。介于-213748.3648到213748.3647 4字节 字符类型 数据类型 描述 存储大小 Char[(n)] 固定长度,非unicode字符数据,长度为n个字节。N的取值范围为1-8000 n字节 Varchar[(n)] 可变长度,非unicode字符数据。1-8000 n字节 Varchar[(max)] 可变长度,非Unicode字符数据。Max,指最大存储大小为2的31次方-1个字节。 输入的实际字节数。 Nchar[(n)] N个字符固定长度unicode编码。N值必须指定在1-4000之间 2乘n字节+2字节 Nvarchar[(n)] 可变长度unicode字符数据。N值在1-4000之间 2乘n字节+2字节 Nvarchar[(max)]] 可变长度unicode字符数据。max值在2的31次方-1个字节 2乘n字节+2字节 Float[(n)] -1.79e+308至-2.23e-308.0以及2.23e-308至1.79e+308 取决于n的值 Money 货币数据。8字节,精确到货币单位的万分之一。 8字节 Smallmoney 货币数据。介于-213748.3648到213748.3647 4字节 文本和图像类型 数据类型 描述 存储大小 text 服务器代码页中长度可变的非Unicode数据,最大长度为2的31次方-1个字符。双字符和单字符都占1。 2的31次方-1 ntext 可变长度, unicode字符数据。2的30次方-1 2的30次方-1 image Unicode, 2的31次方-1 2的31次方-1 Nchar[(n)] N个字符固定长度unicode编码。N值必须指定在1-4000之间 2乘n字节+2字节 日期和时间类型 数据类型 描述 存储大小 smalldatetime 1900-1-1到2079-6-6,精度为分钟 两个2字节的整数 dateteime 1753-1-1到9999-12-31,精度为1/300秒 两个4字节 timestamp 公开数据库中自动生成的一个唯一一个二进制的数据类型。通常用作给表行加班本戳的机制。一个表只能由一个该类型字段。 8字节 其他特出数据类型 数据类型 描述 存储大小 sysname 由特殊系统提供的,sqlserver用户定义的数据类型,sqlserver将sysname类型定义为nvarchar(128),可以存储128个unicode字符。 256字节 xml 2005新增类型,存储xml文件 Xml格式<2gb Uniqueidentifie 全局唯一标识符(guid)。可以通过newid()函数产生。 16字节 Sql_variable 用于存储sqlserver2005支持的各种数据类型。除text,ntext,image,timestamp,sql_variant 最大长度可以使8016字节 Table 类似于使用临时表,此类型包括列表和数据类型,可以用于定义本地变量或用于用户定义的函数的返回值。 随着表定义的变化而变化。 参照这个http://topic.csdn.net/u/20100602/16/93b212ab-00be-4a8c-aeff-712db5a9e7c9.html 既然是粘贴,那我问点具体的吧。text和varchar哪个存的字数多?为什么插入的数据没超限,在数据库里显示不出来 在SQL2005中text和varchar的最大存储都是2GB,varchar(max)在SQL2000中varchar最大是8000字节,text是2GB.显示不出来,楼主还想看到结果的话,可以PRINT一下 1 2000 text,2005如果是varchar(max)一样2 估计你是企业管理器里吧,用select int、bigint、smallint 和 tinyint使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。tinyint从 0 到 255 的整型数据。存储大小为 1 字节。注释在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。 char 和 varchar固定长度 (char) 或可变长度 (varchar) 字符数据类型。char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。注释如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。将为使用 char 或 varchar 的对象被指派数据库的默认排序规则,除非用 COLLATE 子句另外指派了特定的排序规则。该排序规则控制用于存储字符数据的代码页。支持多语言的站点应考虑使用 Unicode nchar 或 nvarchar 数据类型以尽量减少字符转换问题。如果使用 char 或 varchar: 如果希望列中的数据值大小接近一致,请使用 char。如果希望列中的数据值大小显著不同,请使用 varchar。 如果执行 CREATE TABLE 或 ALTER TABLE 时 SET ANSI_PADDING 为 OFF,则一个定义为 NULL 的 char 列将被作为 varchar 处理。 当排序规则代码页使用双字节字符时,存储大小仍然为 n 个字节。根据字符串的不同,n 个字节的存储大小可能小于 n 个字符。nchar 和 nvarcharnchar 是固定长度 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。ntext、text 和 image用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。ntext可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。 存不完,只能存2百多个汉字,剩下的就没存进来。我现在用的是varchar(8000)类型 http://topic.csdn.net/u/20101230/22/d5b95c6d-673e-464b-8e91-05a34e018322.html?757252楼. 换text类型,也一样,是只能存到前2百多个汉字。 第三部分:SQL数据类型与三值逻辑http://topic.csdn.net/u/20100826/18/7b81012a-b5c4-48b1-b5d1-40a92f3e0388.html?93604 在SQLServer 2000,varchar最多可以存8000个字符;在SQLServer 2005+,varchar(max)可以存2G的字符。官方建议用varchar(max)和nvarchar(max)代替text和ntext。 在查询分析器里用select查,只能看到前200多个字,在企业管理器里更是完全看不到。 问题的背景请看http://topic.csdn.net/u/20101227/14/5d8ee6bf-9759-44b4-a41f-153e3705a9e5.html 的46楼 SELECT LEN(content) FROM table看看实际长度是多少。或者PRINT出来。查询分析器的SELECT显示是不完整的。 存不进去不是字段类型的问题。一个可能是程序内哪里把字符串截断了,这个可以用断点跟踪确定;另一个可能是你看到的并不是全部,对于大字段一般不是直接读出来,而是用LEN或DATALENGTH判断长度。SQLSERVER的客户端在输出长字符串的时候默认只输出一小部分。 求助:熟悉sqlserver'2000数据库编码的请进来看看. sa的密码 如何将sqlserver2000中的数据导成powerdesigner的概念模型? SQL语句字符串加数值型字段问题 如何用语句修改字段id属性 设它为主键且自动增一 Rollup问题! 请教这个存储过程的值能打印出来吗 如何在存储过程外部获取或判断存储过程中发生的错误 紧急!怎么写这样的SQL语句 ORACLE的基础,请大家解答一下,马上给分!! SQL 创建MSScriptControl.ScriptControl对象为何失败? SQL语句中如何去控制保留两位小数点.
数据类型
描述
存储大小
Bit
值为1,0,null的整数数据,不包含索引
1字节
tinyInt
0-255整数数据
1字节
smallInt
-2的15次方到2的15次方的整数数据
4字节
int
-2的31次方到2的31次方的整数数据
4字节
bigint
8字节的整数数据
8字节
Binary[n]
N字节的固定长度的二进制数据,n是介于1-8000之间的一个值。当一列的数据输入差别很小时,请使用binary
N+2字节
Varbinary[n]
N字节的可变长度的二进制数据,n是介于1-8000之间的一个值。当一列的数据输入差别很大时,请使用Varbinary
N+2,可以为0
Varbinary(max)
2005新类型,最大2g,变长
N+2,可以为0
Decimal[p,[s]]
固定精度和刻度的数字。精度(p)指被保存数字的总位数,刻度(s)指定数字的小数点后面的位数。
5-17字节
Numeric[p,[s]]
Decimal的同义词
Real
4字节的浮点精度数字数据
4字节
Float[(n)]
-1.79e+308至-2.23e-308.0以及2.23e-308至1.79e+308
取决于n的值
Money
货币数据。8字节,精确到货币单位的万分之一。
8字节
Smallmoney
货币数据。介于-213748.3648到213748.3647
4字节
字符类型
数据类型
描述
存储大小
Char[(n)]
固定长度,非unicode字符数据,长度为n个字节。N的取值范围为1-8000
n字节
Varchar[(n)]
可变长度,非unicode字符数据。1-8000
n字节
Varchar[(max)]
可变长度,非Unicode字符数据。Max,指最大存储大小为2的31次方-1个字节。
输入的实际字节数。
Nchar[(n)]
N个字符固定长度unicode编码。N值必须指定在1-4000之间
2乘n字节+2字节
Nvarchar[(n)]
可变长度unicode字符数据。N值在1-4000之间
2乘n字节+2字节
Nvarchar[(max)]]
可变长度unicode字符数据。max值在2的31次方-1个字节
2乘n字节+2字节
Float[(n)]
-1.79e+308至-2.23e-308.0以及2.23e-308至1.79e+308
取决于n的值
Money
货币数据。8字节,精确到货币单位的万分之一。
8字节
Smallmoney
货币数据。介于-213748.3648到213748.3647
4字节
文本和图像类型
数据类型
描述
存储大小
text
服务器代码页中长度可变的非Unicode数据,最大长度为2的31次方-1个字符。双字符和单字符都占1。
2的31次方-1
ntext
可变长度, unicode字符数据。2的30次方-1
2的30次方-1
image
Unicode, 2的31次方-1
2的31次方-1
Nchar[(n)]
N个字符固定长度unicode编码。N值必须指定在1-4000之间
2乘n字节+2字节
日期和时间类型
数据类型
描述
存储大小
smalldatetime
1900-1-1到2079-6-6,精度为分钟
两个2字节的整数
dateteime
1753-1-1到9999-12-31,精度为1/300秒
两个4字节
timestamp
公开数据库中自动生成的一个唯一一个二进制的数据类型。通常用作给表行加班本戳的机制。一个表只能由一个该类型字段。
8字节
其他特出数据类型
数据类型
描述
存储大小
sysname
由特殊系统提供的,sqlserver用户定义的数据类型,sqlserver将sysname类型定义为nvarchar(128),可以存储128个unicode字符。
256字节
xml
2005新增类型,存储xml文件
Xml格式<2gb
Uniqueidentifie
全局唯一标识符(guid)。可以通过newid()函数产生。
16字节
Sql_variable
用于存储sqlserver2005支持的各种数据类型。除text,ntext,image,timestamp,sql_variant
最大长度可以使8016字节
Table
类似于使用临时表,此类型包括列表和数据类型,可以用于定义本地变量或用于用户定义的函数的返回值。
随着表定义的变化而变化。
http://topic.csdn.net/u/20100602/16/93b212ab-00be-4a8c-aeff-712db5a9e7c9.html
text和varchar哪个存的字数多?
为什么插入的数据没超限,在数据库里显示不出来
在SQL2000中varchar最大是8000字节,text是2GB.
显示不出来,楼主还想看到结果的话,可以PRINT一下
2 估计你是企业管理器里吧,用select
使用整数数据的精确数字数据类型。bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。int从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。存储大小为 4 个字节。int 的 SQL-92 同义字为 integer。smallint从 -2^15 (-32,768) 到 2^15 - 1 (32,767) 的整型数据。存储大小为 2 个字节。tinyint从 0 到 255 的整型数据。存储大小为 1 字节。注释
在支持整数值的地方支持 bigint 数据类型。但是,bigint 用于某些特殊的情况,当整数值超过 int 数据类型支持的范围时,就可以采用 bigint。在 SQL Server 中,int 数据类型是主要的整数数据类型。在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。 只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。SQL Server 不会自动将其它整数数据类型(tinyint、smallint 和 int)提升为 bigint。
char 和 varchar
固定长度 (char) 或可变长度 (varchar) 字符数据类型。char[(n)]长度为 n 个字节的固定长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为 n 个字节。char 在 SQL-92 中的同义词为 character。varchar[(n)]长度为 n 个字节的可变长度且非 Unicode 的字符数据。n 必须是一个介于 1 和 8,000 之间的数值。存储大小为输入数据的字节的实际长度,而不是 n 个字节。所输入的数据字符长度可以为零。varchar 在 SQL-92 中的同义词为 char varying 或 character varying。注释
如果没有在数据定义或变量声明语句中指定 n,则默认长度为 1。如果没有使用 CAST 函数指定 n,则默认长度为 30。将为使用 char 或 varchar 的对象被指派数据库的默认排序规则,除非用 COLLATE 子句另外指派了特定的排序规则。该排序规则控制用于存储字符数据的代码页。支持多语言的站点应考虑使用 Unicode nchar 或 nvarchar 数据类型以尽量减少字符转换问题。如果使用 char 或 varchar: 如果希望列中的数据值大小接近一致,请使用 char。
如果希望列中的数据值大小显著不同,请使用 varchar。
如果执行 CREATE TABLE 或 ALTER TABLE 时 SET ANSI_PADDING 为 OFF,则一个定义为 NULL 的 char 列将被作为 varchar 处理。 当排序规则代码页使用双字节字符时,存储大小仍然为 n 个字节。根据字符串的不同,n 个字节的存储大小可能小于 n 个字符。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。ntext、text 和 image
用于存储大型非 Unicode 字符、Unicode 字符及二进制数据的固定长度和可变长度数据类型。Unicode 数据使用 UNICODE UCS-2 字符集。ntext可变长度 Unicode 数据的最大长度为 230 - 1 (1,073,741,823) 个字符。存储大小是所输入字符个数的两倍(以字节为单位)。ntext 在 SQL-92 中的同义词是 national text。text服务器代码页中的可变长度非 Unicode 数据的最大长度为 231-1 (2,147,483,647) 个字符。当服务器代码页使用双字节字符时,存储量仍是 2,147,483,647 字节。存储大小可能小于 2,147,483,647 字节(取决于字符串)。image可变长度二进制数据介于 0 与 231-1 (2,147,483,647) 字节之间。
第三部分:SQL数据类型与三值逻辑
http://topic.csdn.net/u/20100826/18/7b81012a-b5c4-48b1-b5d1-40a92f3e0388.html?93604
在SQLServer 2000,varchar最多可以存8000个字符;
在SQLServer 2005+,varchar(max)可以存2G的字符。官方建议用varchar(max)和nvarchar(max)代替text和ntext。
看看实际长度是多少。
或者PRINT出来。查询分析器的SELECT显示是不完整的。