char类型标识字段

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

posted on 2021-11-03 21:43  森大科技  阅读(189)  评论(0编辑  收藏  举报

导航