本文档提供了关于在SQL数据库中创建自动编号脚本和存储过程的相关代码片段,主要关注于两个关键表的设计:`ICMaxNum`和`ICBillNo`。这些脚本用于管理和生成数据库中的自增序列,以及为特定类型的记录(如账单)生成唯一的标识符。 1. **自动编号脚本**: - 首先,检查名为`ICMaxNum`的用户表是否存在,如果存在则执行`DROP TABLE`语句以防止数据冲突。然后创建一个新的`ICMaxNum`表,用于存储各表的最大编号(FMaxNum)。这个表的目的是为那些需要自动递增的字段提供一个基础值,确保每次插入新记录时,自增字段能获得一个连续的数值。 2. **存储过程`ICBillNo`**: - 对于`ICBillNo`表,该表的结构更为复杂,包含多个字段,如账单ID(FBillID)、账单名称(FBillName)、前缀(FPreLetter)和后缀(FSufLetter),以及当前的账单号(FCurNo)。它还包括账单名称的中文和英文版本,格式(FFormat)、位置(FPos)、是否允许修改账单号(FCanAlterBillNo)、保存后是否进行校验(FCheckAfterSave)、使用账单编码规则(FUseBillCodeRule)以及描述(FDesc)。此表的主键可能是FBillID,且设置在`ON PRIMARY`上,表示这是一个主键索引。 3. **应用场景**: - 这些脚本适用于需要自动编号或唯一ID生成的场景,例如在财务系统中,账单表可能需要一个唯一的识别号,每次新创建账单时,自动编号会递增。`ICMaxNum`表作为共享服务,确保各个相关的账单表都能获取到合适的初始编号。 4. **注意事项**: - 在实际应用中,还需要考虑到数据一致性、事务处理以及潜在的并发问题,可能需要配合其他锁定机制来避免数据冲突。 - 在创建和使用存储过程时,要确保权限设置正确,以防止未授权的修改或数据泄露。 总结来说,这份脚本提供了如何在SQL中创建自动编号存储过程和表的方法,适用于那些需要维护数据完整性和唯一性的应用程序。通过理解这些代码,开发者可以有效地在数据库设计中实现此类功能。
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ICMaxNum]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[ICMaxNum]
GO
CREATE TABLE [dbo].[ICMaxNum] (
[FTableName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FMaxNum] [int] NULL
) ON [PRIMARY]
GO
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[ICBillNo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
drop table [dbo].[ICBillNo]
GO
CREATE TABLE [dbo].[ICBillNo] (
[FBillID] [int] NOT NULL ,
[FBillName] [varchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FPreLetter] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[FSufLetter] [varchar] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[FCurNo] [int] NULL ,
[FBillName_CHT] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FBillName_EN] [nvarchar] (100) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FFormat] [varchar] (255) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[FPos] [int] NULL ,
[FCanAlterBillNo] [smallint] NOT NULL ,
[FCheckAfterSave] [int] NOT NULL ,
[FUseBillCodeRule] [int] NOT NULL ,
[FDesc] [nvarchar] (200) COLLATE Chinese_PRC_CI_AS NOT NULL
) ON [PRIMARY]
下载后可阅读完整内容,剩余3页未读,立即下载