GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=2020
ql server数据库 主键怎么自动生成
表1-1 表名: student(学生信息表)
字段名称 类 型 宽 度 允许空值 主 键 说 明
sno char 9 NOT NULL 是 学生学号 061201204
sname char 10 NOT NULL 学生姓名
sex char 2 NULL 学生性别 填1 或 2
native char 20 NULL 籍贯
birthday date 6 NULL 学生出生日期
dno char 2 NULL 学生所在院系编号(外键
spno char 2 NULL 专业代码
Picture Char 40 Not null 照片
Zzmm Char 2 Null 政治面貌 // 团员
classno char 4 NULL 班级号
entime date 6 NULL 学生入校时间 //
home varchar 50 NULL 学生家庭住址
tel varchar 40 NULL 学生联系电话
表结构如上
当我的数据库里有200条记录了 我要新插入一条记录时 用insert的时候 学号(主键)怎么确定 我看网上说 定义int 类型的主键设置标识为是 就能自动加1 但是 如果 主键就是 字符型的 还有其他方法 自动生成吗
原来学数据库原理时候 老师都是像上面那样建的表
回复一:
默认值定义成一个函数呗。
自定义一个函数
create function getid()
returns varchar(50)
as
begin
—create @yourid here
return @yourid
end
把字段的默认值设为dbo.getid()
回复二:
数据库中要自动生成主键,只能是int类型。你要自动生成学号主键的话,可以自己编写程序实现。
回复三:
主键和自动编号不是一个意思,自动编号在sqlserver选中为标识 就可以自动加一,主键也可以定义,但不是一个意思,主键即使你定义,你不调设为标识不会自动加一,在oracle自动编号字符串类型的
回复四:
可以通过SQL语句来实现 ,
举个例子你看看:
declare @sno char (10) ,@id int
set @sno=(select top 1 sno from student order by sno desc)
set @id=convert(int,@sno)
insert into student (sno) values(@id+1)
GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
https://cnsendnet.taobao.com
来自森大科技官方博客
http://www.cnsendblog.com/index.php/?p=2020