create database Student
go
use Student
go
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
go
如果我是这样写的话:Ssex char(2) default '男'
在企业管理器中查看时并没有默认赋值啊。
我用的是MS SQL Server2000,请问该如何编写SQL语句解决这个问题?
错误报告:
服务器: 消息 170,级别 15,状态 1,行 13
第 13 行: 'for' 附近有语法错误。
服务器: 消息 170,级别 15,状态 1,行 15
第 15 行: 'for' 附近有语法错误。
15 个解决方案
#1
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) IS NOT NULL DEFAULT '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
#2
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) NOT NULL DEFAULT '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
多打了个IS 晕
#3
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) NOT NULL DEFAULT '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
#4
可是人家说这样看不到 默认直
#5
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) default '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
insert stu(sno,sname,sdetp) select 1,'ff','sss'
select* from stu
--result
/*Sno Sname Ssex Sdetp
---------- -------------------------------------------------- ---- --------------------------------------------------
1 ff 男 sss
(所影响的行数为 1 行)
*/
#6
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) not null default '男',
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
insert into stu(Sno,Sname,Sdetp) select '001','张三','zzz'
select * from stu
/*
Sno Sname Ssex Sdetp
---------- -------------------------------------------------- ---- --------------------------------------------------
001 张三 男 zzz
(1 行受影响)
*/
#7
测试后7哥,小F姐的都可以看到默认值的。
#8
create table stua(a char(2) default '男')
insert stua default values
select * from stua
--result
/*a
----
男
(所影响的行数为 1 行)
*/
#9
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
这句代码为何报错呢?
这句代码为何报错呢?
#10
这么用是属于表约束,表约束中没有default
#11
在2000中不可以对default定义为表级约束吗?
在2005中为何可以?
#12
你自己查一下CREATE TABLE 的联栅帮助吧,表约束要修改时才会有默认约束,创建时没有
#13
不是不可,创建时不可,修改时还是有的
#14
create table stu(a varchar(20))
alter table stu add default '男' for a
insert stu default values
select * from stu
--result
/*a
--------------------
男
(所影响的行数为 1 行)
*/
#15
如果那样看不到默认值的话,你可以这样试试
alter table Stu
add constraint DF_Ssex default ('男') for Ssex
alter table Stu
add constraint DF_Ssex default ('男') for Ssex
#1
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) IS NOT NULL DEFAULT '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
#2
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) NOT NULL DEFAULT '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
多打了个IS 晕
#3
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) NOT NULL DEFAULT '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
#4
可是人家说这样看不到 默认直
#5
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) default '男' ,
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
insert stu(sno,sname,sdetp) select 1,'ff','sss'
select* from stu
--result
/*Sno Sname Ssex Sdetp
---------- -------------------------------------------------- ---- --------------------------------------------------
1 ff 男 sss
(所影响的行数为 1 行)
*/
#6
create table Stu
(
Sno char(10) primary key,
Sname varchar(50) not null,
Ssex char(2) not null default '男',
Sdetp varchar(50) not null,
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
)
insert into stu(Sno,Sname,Sdetp) select '001','张三','zzz'
select * from stu
/*
Sno Sname Ssex Sdetp
---------- -------------------------------------------------- ---- --------------------------------------------------
001 张三 男 zzz
(1 行受影响)
*/
#7
测试后7哥,小F姐的都可以看到默认值的。
#8
create table stua(a char(2) default '男')
insert stua default values
select * from stua
--result
/*a
----
男
(所影响的行数为 1 行)
*/
#9
--constraint DE default '男' for Ssex--查询分析器报语法错误啊,在这里!
这句代码为何报错呢?
这句代码为何报错呢?
#10
这么用是属于表约束,表约束中没有default
#11
在2000中不可以对default定义为表级约束吗?
在2005中为何可以?
#12
你自己查一下CREATE TABLE 的联栅帮助吧,表约束要修改时才会有默认约束,创建时没有
#13
不是不可,创建时不可,修改时还是有的
#14
create table stu(a varchar(20))
alter table stu add default '男' for a
insert stu default values
select * from stu
--result
/*a
--------------------
男
(所影响的行数为 1 行)
*/
#15
如果那样看不到默认值的话,你可以这样试试
alter table Stu
add constraint DF_Ssex default ('男') for Ssex
alter table Stu
add constraint DF_Ssex default ('男') for Ssex