各位帮忙看看,这里面哪错了呢 环境 SQL 2005
create table student(
student_id char (8) not null,
student_name nvarchar(8) not null,
sex nvarchar(1) not null, /// 刚才是用得是 bit (1) 也说无法分配位宽
age int (4) not null,
class_id char (6) not null ,
department_id char(6) not null,
student_addr nvarchar(40) not null
)
消息 2716,级别 16,状态 1,第 1 行
第 4 个列、参数或变量: 不能对数据类型 int 指定列宽。
------最佳解决方案--------------------
sex nvarchar(1) not null, /// 刚才是用得是 bit (1) 也说无法分配位宽
age int (4) not null,
bit和int型字段不需要指定长度.
另nvarchar(1)不如改成nchar(1),只有一位的,无须使用变长字符串.
------其他解决方案--------------------
注释用--不是///
类型不固定时,最好用varchar
------其他解决方案--------------------
SQL的数据类型
http://msdn.microsoft.com/zh-cn/library/ms187752(v=SQL.90).aspx
------其他解决方案--------------------
create table student(
student_id char (8) not null,
student_name nvarchar(8) not null,
sex nvarchar(1) not null,-- /// 刚才是用得是 bit (1) 也说无法分配位宽
--如果要用bit类型,直接就是 bit ,不要加1
age int (4) not null,
class_id char (6) not null ,
department_id char(6) not null,
student_addr nvarchar(40) not null
)
------其他解决方案--------------------
create table student(
student_id char (8) not null,
student_name nvarchar(8) not null,
sex nvarchar(1) not null, --/// 刚才是用得是 bit (1) 也说无法分配位宽
age int not null,
class_id char (6) not null ,
department_id char(6) not null,
student_addr nvarchar(40) not null
)
------其他解决方案--------------------
int本来就是4 不用指定了吧
------其他解决方案--------------------
create table student(
student_id char (8) not null,
student_name nvarchar(8) not null,
sex nvarchar(1) not null, ----/// 刚才是用得是 bit (1) 也说无法分配位宽
age int not null,
class_id char (6) not null ,
department_id char(6) not null,
student_addr nvarchar(40) not null
)
------其他解决方案--------------------
把int后面的4去掉就行了,不需要定义长度
------其他解决方案--------------------
int在sql server和oracle中不需要定义长度,在mysql中需要定义 把(4)去掉就好了