关于SQL Server 2000 Varchar长度的一个问题!!请高手解答
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于SQL Server 2000 Varchar长度的一个问题!!请高手解答相关的知识,希望对你有一定的参考价值。
这个情况....
VARCHAR是一种比CHAR更加灵活的数据类型,同样用于表示字符数据,但是VARCHAR可以保存可变长度的字符串。其中M代表该数据类型所允许保存的字符串的最大长度,只要长度小于该最大值的字符串都可以被保存在该数据类型中。因此,对于那些难以估计确切长度的数据对象来说,使用VARCHAR数据类型更加明智。VARCHAR数据类型所支持的最大长度也是255个字符。
--------摘自<百度百科>
所以,你定的长度8000也没用,因为它最多只能为255个字符,至于你返回的只有254个就不知道了.其实如果你非要存储大量的数据的话,建议你用
Text
类型,这个最多可以存储2GB的数据,当然,如果你没有必要存放那么多东西,就建议你用nvarchar了,这个比varchar灵活
.
而且也不是很占资源,毕竟数据库资源也是很重要的.. 参考技术A 1、SqlServer是支持Varchar(8000)
的,最多8000个字符,4000个汉字;
2、你的问题在于:你用Varchar(8000)的变量,但是你的数据库该字段的定义长度是varchar(254)吧?所以最后存储时会被截断。把该字段的长度修改为varchar(8000)即可。 参考技术B VARCHAR数据类型所支持的最大长度也是255个字符~你写个8000和255一个效果哇~
Sql Server快速建表
use MyDatabase
create table 学生表
(
学号 varchar(16) primary key,
姓名 varchar(8),
性别 char(2) check (性别 IN (男,女)),
出生日期 date,
所在系 varchar(20),
专业 varchar(20),
班号 varchar(10),
联系号码 varchar(20),
QQ号码 varchar(15),
通讯地址 varchar(20)
)
create table 课程表
(
课程号 varchar(16) primary key,
课程名 varchar(30) NOT NULL,
学分 tinyint check(学分 between 1 and 8),
开课学期 tinyint check(开课学期 between 1 and 12),
课程性质 varchar(4) check(课程性质 in (必修,选修)),
考试性质 varchar(4) check(考试性质 in (考试,考查)),
授课时数 tinyint check(授课时数 <=68),
实践时数 tinyint check(实践时数 <=68),
平时成绩比例 numeric(1,1)
)
create table 教师表
(
教师号 varchar(16) primary key,
教师名 varchar(8) not null,
性别 char(2) check(性别 in (男,女)),
职称 varchar(6) check(职称 in (助教,讲师,副教授,教授)),
学历 varchar(6) check(学历 in(本科,硕士,博士,博士后)),
出生日期 date,
所在部门 varchar(30),
联系号码 varchar(20),
通讯地址 varchar(20)
)
create table 选课表
(
学号 varchar(16) not null,
课程号 varchar(16) not null,
选课学年 varchar(4),
选课学期 char(1) check(选课学期 like [12]),
primary key (学号,课程号,选课学年,选课学期),
foreign key(学号) REFERENCES 学生表(学号),
foreign key(课程号) REFERENCES 课程表(课程号)
)
create table 成绩表
(
学号 varchar(16),
课程号 varchar(16),
考试次数 tinyint check(考试次数 between 1 and 3),
平时成绩 tinyint,
考试成绩 tinyint,
总评成绩 tinyint,
primary key (学号,课程号),
foreign key(学号) REFERENCES 学生表(学号),
foreign key(课程号) references 课程表(课程号)
)
create table 授课表
(
课程号 varchar(16) not null,
教师号 varchar(16) not null,
学年 varchar(4),
学期 tinyint,
主讲时数 tinyint,
辅导时数 tinyint,
带实验时数 tinyint,
primary key (课程号,教师号,学年,学期),
foreign key(课程号) REFERENCES 课程表(课程号),
foreign key(教师号) REFERENCES 教师表(教师号)
)
以上是关于关于SQL Server 2000 Varchar长度的一个问题!!请高手解答的主要内容,如果未能解决你的问题,请参考以下文章
sql server2000中CONVERT中各个参数的意思
SQL server 数据类型 - Date VS Varchar(n)