我想问下sql server2005,练习题中,我究竟是哪里出问题了?为什么命令总是执行不成功呢?求高人解答

一、建一个职工信息表,有如下字段:职工号,姓名,性别,出生日期,参加工作时间,学历,毕业院校,电子邮箱,基本工资等字段。
1. 职工号字段为自动编号属性。
2. 姓名,出生日期,参加工作时间,基本工资字段要求不能为空。
3. 性别的值只能在“男”,“女”,“保密中选择”。
基本工资的默认值为1500。

我的答案:
create database 职工信息
use 职工信息
create table 职工信息表
(
职工号 int identity(1,1),
姓名 varchar(20) not null,
性别 varchar(20) check(性别='男' or 性别='女' or 性别='保密'),
出生日期 varchar(20) not null,
参加工作时间 datetime not null,
学历 varchar(20),
毕业院校 varchar(20),
电子邮箱 varchar(20),
基本工资 varchar(20) not null default(1500)
)

在SQL SERVER2005中测了下 你的语句,发现建表语句正常运行。如图

你的建表语句完全没有问题。


你的错误原因是建数据库语句出错了


错误行:create database 职工信息


解决方法:


建库示例:


CREATE DATABASE 职工信息   ON PRIMARY   ( 

NAME = eployeedata ,   

FILENAME = 'd:\职工信息.mdf' ,   

SIZE =5MB , -- 默认字节单位MB可以省略   

MAXSIZE= 10 ,  -- 文件最大容量 10 MB 

FILEGROWTH = 15% -- 增长量为文件容量15% 

)


use 职工信息

create  table 职工信息表

(

  职工号 int identity(1,1), -- 你这样的表达可以的

  姓名   varchar(20) not null,

  性别   varchar(20) check(性别='男' or 性别='女' or 性别='保密'),

  出生日期  varchar(20) not null,

  参加工作时间 datetime not null,

  学历   varchar(20),

  毕业院校 varchar(20),

  电子邮箱 varchar(20),

  基本工资 varchar(20) not null default(1500)  --工资应该是decimal类型

)



希望这样的表达你看的懂,通过了,记得给分~

追问

额,亲,不好意思,我是真心的看不懂,偶是初学者,对啦,偶的老是刚刚看过了,没有问题,谢谢高手啦

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-03-22
字面看么问题,就是邮箱太短,还有学历学校应该用nvarchar类型,工资应该用decimal或者numeric
但是你这个语法上没错误追问

额,高手,能说点大白话吗?我是初级学者,完全听不懂您的专业术语,能大概说一下哪里出问题了吗?我是从职工号那里开始每一行都有问题,都不知道错在哪里了

追答

嗯。。你执行后报什么错呢,我刚的意思是设计上的问题,你的语法我这边也分析编译过了,是没问题的

追问

这是职工号行的错误,依次往下Msg 156, Level 15, State 1, Line 1 Incorrect syntax near the keyword 'identity'.
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '30'.
Msg 102, Level 15, State 1, Line 1 Incorrect syntax near '20'.
Msg 156, Level 15, State 1, Line 1 Incorrect syntax near the keyword 'not'.
......
原谅我英语不好,完全看不懂,可是学校安装的就是这样的

追答

很明显,你上面贴出的语句与你给出的错误提示不符
错误提示,关键字20、30处有语法错误,你给出的语句中没有30??

本回答被提问者采纳
第2个回答  2013-03-22
你的意思是想让职工号作为主键 并且自增吗
你把语句改为
id int identity(1,1),constraint pkid primary key (id)追问

我按照你的方法做了,可是还是有问题 ,检查时,错误原因是Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'identity'.这是怎么回事啊?

相似回答