给数据表设置自动编号-格式(**yyyymm####)

基于Python实现学习进度跟踪系统 {{ task }}: {{ "%.1f"|format(hours) }}小时 阅读详情

       当我们设置数据表的时候,一般设置一列为主键,如果利用MS的Sql Server 数据库,可以设置主键列自动编号,它默认的是,从1自动增加。可我们有时,需要将主键列变得有一点意义,比如用年月之后是几位的自动编号,这样看起来,有有一点意义。
例如:一个数据表的结构如下:

If Exists (Select * From SysObjects Where Id = Object_Id('Invoice'))
Drop Table dbo.Invoice
GO
Create Table dbo.Invoice(
    InvCode 
varchar(12) Not null Primary key,--开票编号
    InvType    varchar(10) Not null,        --开票类型:整机、配件;
    InvType1 varchar(10) Not null,        --开票类型:采购、销售
    InvType2 varchar(10) Not Null,        --开票类型:普通、增值税
    Tax Numeric(8,2) Not Null,        --开票金额;
    Cess Numeric(2,2) Not Null,        --税率;
    InvDate smalldatetime Not Null,        --开票日期;
    Code1 varchar(20) Null,            --票号1
    Code2 varchar(20) Null,            --票号2
    OPTaxCode varchar(20) Not Null,        --往业单位税号
    OPName varchar(50) Not Null,        --往来单位名称
    Note varchar(100) Null,            --备注;
    IsValidate bit Not Null,         --确认标识:默认没有确认;
    Pact Varchar(12) Null            --对应合同编号;
)
GO
当建立数据表后,需要设置InvCode数据列为函数所取得的编号,代码如下所示:
--=============================================================================
/****** 对象: 自定函数 dbo.fu_Invoice_Code ******/
/****** 说明:发票编号 ******/
--=============================================================================
if exists (select * from dbo.sysobjects where id = object_id('dbo.fu_Invoice_Code'))
drop function dbo.fu_Invoice_Code
GO
SET QUOTED_IDENTIFIER ON 
GO
SET ANSI_NULLS OFF 
GO
 
CREATE FUNCTION dbo.fu_Invoice_Code ()  
RETURNS varchar(12) AS  
BEGIN 
    
declare @ResultCode varchar(12) , @ToDay SmallDatetime
    
Select @ToDay = ToDay From vw_GetDate
    
if Exists ( Select * From Invoice )
    
begin
        
Select  @ResultCode =  Max ( InvCode ) From Invoice
        
--取出数据表中最大年份,看是否是当年的信息
        If ( SubString ( @ResultCode , 3 , 4 ) = DateName ( Year,@ToDay ) )
        
begin
            
--取出数据表中的最大编号的月份,看是否是当前的月份
            If ( SubString ( @ResultCode , 7 , 2 ) = DateName ( Month , @ToDay ) )
                
--当是当前月份时,把最后四位进行处理,重新获取新的编号
                Set @ResultCode = Left ( @ResultCode , 8 ) + 
                
Right ( '0000' + Convert ( varchar , Convert ( int , SubString ( @ResultCode , 9 , 4 ) ) +1  ) , 4 )
            
else    
            
--当不是当前的月份时,取出前六位,之后把当前的月份编号添加上去,再加上0000,组成最大的编号    
                Set @ResultCode=Left(@ResultCode,6)+DateName(Month,@ToDay)+'0000'
        
end
        
else 
        
--当从数据表中取出的最大年份不是当年时 ,进行如下操作
            Set @ResultCode =  'FP' + DateName ( Year , @ToDay ) + DateName ( Month , @ToDay ) + '0000'
    
end
    
else
        
Set @ResultCode =  'FP' + DateName ( Year , @ToDay ) + DateName ( Month , @ToDay ) + '0000'
    
return @ResultCode
END-------------------------------------------------------------------------------
ALTER TABLE dbo.Invoice ADD 
--自动发票编号
    CONSTRAINT DF_Invoice_InvCode DEFAULT (dbo.fu_Invoice_Code()) FOR InvCode
GO
C语言读取CSV文件的方法1 逗号分隔值文件格式(CSV),以纯文本形式存储表格数据,它是一种通用的、相对简单的文件格式,被用户、商业和科学广泛应用。本文介绍利用C语言标准库中的一个字符串处理函数 strtok()来对CSV文件内容进行读取的基本方法 阅读详情

相关推荐

Wan 3.0提示词实战:从抄作业到改作业的完整技巧

AI视频生成中,提示词是决定成片质量的核心。视频模型依赖于文字约束来定义运动轨迹、镜头语言与物理合理性,提示词工程因此成为连接创意与技术的关键。本文从提示词的结构、资源获取、优化方法入手,结合Wan 3.0的模型特点,梳理了从官方模板到社区案例的实战路径,并强调运动一致性、风格词堆砌等常见问题。通过分解主体、动作、镜头等维度,帮助创作者快速找到适配的提示词,提升视频生成的稳定性与惊喜感。

weixin_29483277的博客 352

有订单表SO_Table,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如:2004050001,2004050002……2004059999等,采用Transact-SQL实现新订单编号的思

Transact-SQL实现新订单编号 有订单表SO_Table,单号字段RefNo VARCHAR(10),需要实现自动编号,格式为YYYYMMXXXX,其中XXXX为序号,如:2004050001,2004050002……2004059999等,采用Transact-SQL实现新订单编号的思路。

lifusong890910的专栏 2869

音乐频谱灯的硬件艺术:从STM32到SK9822LED的工程美学

本文探讨了基于STM32微控制器和SK9822 LED的音乐频谱灯硬件设计与实现。通过ADC采集音频信号,利用FFT算法进行频谱分析,并驱动LED阵列呈现动态视觉效果,展现了硬件工程与艺术美学的完美融合。

Pepper的专栏 217

mysql数据库自动添加编号_mysql数据库自动添加编号

1.not null 非空约束①强制列不接受空值②例:创建表时,name varchar(6) not null,2.unique 唯一性约束①约束唯一标识数据库表中的每条记录②unique和primary key都为数据提供了唯一性约束③primary key 拥有自动定义的Unique约束④注意:每个表中只能有一个primary key约束,但是可以有多个Unique约束⑤语法:1.name...

weixin_32446549的博客 4406

C++ 工程实践(9):数据抽象

陈硕 (giantchen_AT_gmail)http://blog.youkuaiyun.com/Solstice  http://weibo.com/giantchen陈硕关于 C++ 工程实践的系列文章: http://blog.youkuaiyun.com/Solstice/category/8

陈硕的Blog 1万+

K8s-K8s部署Zookeeper+Kafka+ELFK+持久化数据

K8s环境下容器化部署`Zookeeper+Kafka+ELFK`日志收集系统

✅ 专注企业级 Linux/DevOps 运维的实战派 ✅ 已输出上百篇可落地方案 ✅ Shell 脚本开箱即用 ✅ K8s/YAML 环境验证 ✅ 故障排查链路完整复现 1916

SQL怎样自动生成编号格式如:BV+YYYYMM+编号

使用触发器来实现 create table test( id varchar(20), sname varchar(20) ) create TRIGGER [test_insert] ON [dbo].[test] INSTEAD OF INSERT AS declare @str varchar(20) declare @i integer set @str = BV+left(conve

lancanfei的专栏 2912

【异常】DeepSeek API HTTP 401 认证失败错误完整排查与解决方案

摘要:本文针对DeepSeek API开发中的HTTP 401认证失败错误进行深度解析,指出该错误属于不可重试的认证类问题。文章首先拆解错误日志关键字段,区分401与其他API错误的本质差异。随后提供优先级排序的全链路解决方案:1)检查API密钥有效性;2)规范请求头认证格式;3)排查账户权限状态;4)验证请求环境配置。最后建议通过新建测试密钥、使用官方示例代码或联系技术支持进行兜底处理。全文采用技术脱敏处理,为开发者提供系统性的401错误排查指南。(149字)

奶爸的编程之路,也就一周冷个三天 1531

编号或者编码自动生成

实际的项目中,客户提供的表单某个字段编码或者编号是有固定格式的,不能让客户自己每次都去填写,要自动生成

DBAA. 777

【机器学习-09】特征工程

特征工程是机器学习模型构建的初步工作,但它的重要性却贯穿整个模型生命周期。在进行特征工程时,我们需要充分利用数据科学的知识和技巧,结合具体的应用场景和业务需求,来制定出最合适的特征提取和转换策略。只有这样,我们才能为机器学习模型提供最有价值的输入,从而使其发挥出最大的潜力。总之,特征工程是机器学习中的一项关键任务,它需要我们用心去探索、去实践、去创新。只有不断地优化和完善特征工程的过程,我们才能构建出更加准确、更加可靠的机器学习模型,为实际应用带来更大的价值。

qq_38614074的博客 2万+

手撕数美风控三板斧:device_fingerprint/device_id/hmac生成逻辑全解析

摘要:逆向分析数美风控核心参数生成机制 本文详细记录了逆向分析数美(Shumei)风控系统中三个关键参数(device_id、device_fingerprint、hmac)的生成逻辑。通过抓包分析和动态调试(使用Frida、IDA等工具)发现:device_id由设备IMEI和Android ID经MD5哈希生成;device_fingerprint融合23项设备与环境信息,并采用SHA-256哈希和动态环境检测;hmac则是参数+指纹+动态盐值的SHA-256签名。文章揭示了数美"设备指纹+动

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1477

数据库表的基本操作和编码格式设置

对数据库表的操作 1.创建一张表 create table 表名( 字段名 类型(长度) [约束], 字段名 类型(长度) [约束], 字段名 类型(长度) [约束] ); 2.查看数据库表 show tables; **查看表的结构 desc 表名** 3.删除一张表 drop table 表名 4.修改表 4.1 添加一列 alter table 表名 add 字段名 类型(长度) [约束] 4.2 修改列的类型(长度、约束) alter table 表名 modify 要修改的字段名 类型(

s_e_e_you_later的博客 1万+

sphincs+ Nist Round3文档中文译版(SPHINCS+ Submission to the NIST post-quantum project, v.3)

1. 引言 哈希基础签名方案最初是由Lamport [14]在1970年代后期作为一次性签名方案开发的,并由Merkle [16]扩展为多次签名方案。这些方案的安全性易于分析,并仅依赖于所使用的哈希函数的属性。然而,Merkle基于树的签名方案需要在密钥生成时就确定要进行签名的数量,且为了保持性能这个数字要小。最重要的是,该系统需要用户记住一个状态:这个状态包含一些信息以记住密钥已经进行了多少次签名。 在Lamport方案诞生后的40年里,产生了许多想法改进了哈希基础签名的性能、实用性和理论基础,最终XMS

dedanddwb的博客 395

如何在MySQl数据库中给已有的数据表添加自增ID?

由于使用MySQL数据库还没有多久的缘故,在搭建后台往数据库导入数据的时候发现新增的表单是没有自增id的,因次就有了上面这个问题。 解决方法1、给某一张表先增加一个字段,这里我们就以node_table这张表来举例,在数据库命令行输入下面指令 :alter table node_table add id int2、更改id字段属性为自增属性,在数据库命令行输入下面指令 :alter table `n

Afeyer的博客 2万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

PostgreSQL - 设置数据表编号初始值

我们都知道在 MySQL 中,初始化数据表编号初始值语法: ALTER TABLE t_ac_api AUTO_INCREMENT = 1000000; 那么,在 PostgreSQL 里就报错了,语法应该是: SELECT SETVAL(pg_get_serial_sequence('t_ac_api', 'api_no'), 1000000, FALSE); 具体 SETVAL 函数可以参考官方文档:https://www.yiibai.com/manual/postgresql/funct

688

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

『MySql 』编码设置

『MySql 』编码设置 MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。 查看系统的字符集和排序方式的设定可以通过下面的两条命令或mysql>...

iteye_10154的博客 293

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

数据库中设置自动编号解析。

设置数据库自动编号的条件:   只能不允许为空值且数据类型为decimal,int ,number,tinyint,smallint,bigint。   修改类的标识属性:  1.在对象资源管理器中,右击要更改其数据类型所在的表,再单击修改时,将在表设计器中打开该表。  2.清除要更改的列的“允许空”复选框。  3.在“列属性”选项卡中,展开“标识规范”属性。  4.单击“是标识”子属

a135450的专栏 5378

SQL语句给某一列自动编号

select * into #temp from(  select 'a' as coll,' ' id  union all  select 'b',' ' id  union all  select 'c',' '    id   union all  select 'd',' '    id  )a  declare @i int=0  update #temp set

5150

sqlserver中将datetime类型转换为yyyyMMddHHmmss格式

Select REPLACE(CONVERT(varchar(100), GETDATE(), 112)+CONVERT(varchar(100), GETDATE(), 8),':','')--20170109172320

cgs的博客 2万+

如何解决sql server 自动编号问题

你创建一个表,把其中一个列(比如“ID”)的“标识列”属性设为“是”,然后设置它的种子(初始值)、递增量。比如你按默认设定种子为1、递增量为1,那么生成的ID序列就会是:1、2、3、4、…… 在记录不是特别多(>1000万条)时,这个值是唯一的,也就是不会出现两者相同的情况。 但这样会有一个问题,比如你顺序生成了10条记录: 1、2、3、4、5、6、7、8、9、10 然后你删除了3号记录,这样剩下

qingyundys的专栏 2433

在SQL server中设置表的自动编号功能

       我们都知道很多的数据库软件都为表提供了自动编号的功能,这对于进行有些表的功能是十分有用 的,可以减少很多不必要工作,由于SQL server是我最近才使用的所以,在这个过程中遇到了一些问题,但是经过查找资料和摸索总算是解决了,所以现在将自己的心得写下,希望当你遇到同样问题时,可以快速的解决.    在SQL server中要实现自动可以有两种方式:    1.通过"企业管理器",以窗

hfly2005的专栏 3万+

JAVA日期相关的方法总结

package julit.framework.common.util;import java.math.BigDecimal; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.

过期罐头 261
上一篇: linux必学的60个命令
下一篇: DropDownList控件运用
striveman
博客等级 码龄20年 27粉丝 55原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值