| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 679 人关注过本帖
标题:数据库设置问题
只看楼主 加入收藏
beblue
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2007-3-24
收藏
 问题点数:0 回复次数:2 
数据库设置问题
?    学生编号:该字段唯一标识一个学生。通过程序自动生成学生编号,生成规则为入学日期所在年份+4位流水号,其中,流水号为同一年份的最后一个编号加1,如果该年份第一个学生,则编号为:入学日期所在年份+0001。如:2007年第一个学生的编号,则为:20070001,那么第2个学号则为:20070002,以此类推。


哪个能详细跟我说说这个怎么写啊
搜索更多相关主题的帖子: 数据库 
2008-03-05 16:39
sjxwb
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2007-1-11
收藏
得分:0 
在程序中控制。
先统计一下数据库中行数,在此基础上+1
2008-03-05 20:46
beblue
Rank: 1
等 级:新手上路
帖 子:182
专家分:0
注 册:2007-3-24
收藏
得分:0 
大概是这样写的
select isnull(max(SID)+1,cast(year(getdate()) as char(4))+'0001')  //true时返回最大值加1,false里返回转为char类型的当前年份再加0001
from studentinfo  
where cast(max(SID) as varchar(4))=cast(year(getdate())  //当年份等于最在值年份时


但是我不知道怎么把这个结果到加存储过程的参数中去
USE [Student]
GO
CREATE PROCEDURE [insert_SInfo_proc]
    (@SID     [char](8),
     @SName    [varchar](50),
     @SCity     [varchar](50),
     @SCounty     [varchar](50),
     @SInTime     [datetime],
     @SBirtyDay     [datetime],
     @SEmail     [varchar](20),
     @SSex     [char](2),
     @SSkill     [char](10),
     @SRemarks    [varchar](100))

AS INSERT INTO [Student].[dbo].[SInfo]
     ( [SID],
     [SName],
     [SCity],
     [SCounty],
     [SInTime],
     [SBirtyDay],
     [SEmail],
     [SSex],
     [SSkill],
     [SRemarks])
 
VALUES
    ( @SID,
     @SName,
     @SCity,
     @SCounty,
     @SInTime,
     @SBirtyDay,
     @SEmail,
     @SSex,
     @SSkill,
     @SRemarks)

麻烦你再帮我看看

继续向前-------------------努力成为高手
2008-03-06 11:13
快速回复:数据库设置问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.024829 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved