标签:
全局:
1. 设置全局变量rowid(标识码)
Exec sp_addtype rowid,‘Varchar(6)‘,‘Not Null‘ --自定义数据类型rowid
2. 创建一个表用来记录标识码类型()
--可根据实际情况设置默认值 CREATE TABLE _sysparameters( nodetype varchar(10) NOT NULL, --标识类型 nodeid rowid NOT NULL, --标识的最大值,之后新的ID在这个基础上递增 siteid varchar(10), --默认为NULL,自定义 version char(10) --版本,自定义 --设置rowid为6位数.创建规则 CREATE RULE rowid6 AS STR(@rowid)=6 --绑定规则 SP_BINDRULE rowid6,‘_sysparameters.nodeid‘
3. 6位数rowid标识码获取,大写字母+数字有序的生成
/* 2015.4.26 HZF */ ALTER PROC [dbo].[p_sysxxxxrowid] @XXXX ROWID OUTPUT AS DECLARE @nodeid rowid DECLARE @oldnodeid rowid BEGIN TRAN -- ASCII 40 - 96 select @nodeid = nodeid from _sysparameters where nodetype=‘rowid‘ --获取历史最大的id码 set @oldnodeid = @nodeid if RIGHT(@nodeid,1) = ‘9‘ set @nodeid = left(@nodeid,5) + ‘A‘ else if RIGHT(@nodeid,2) = ‘9Z‘ set @nodeid = left(@nodeid,4) + ‘A0‘ else if RIGHT(@nodeid,3) = ‘9ZZ‘ set @nodeid = left(@nodeid,3) + ‘A00‘ else if RIGHT(@nodeid,4) = ‘9ZZZ‘ set @nodeid = left(@nodeid,2) + ‘A000‘ else if RIGHT(@nodeid,5) = ‘9ZZZZ‘ set @nodeid = left(@nodeid,1) + ‘A0000‘ else if @nodeid = ‘9ZZZZZ‘ set @nodeid = ‘A00000‘ else if Right(@nodeid,1) <> ‘Z‘ set @nodeid = left(@nodeid,5) + CHAR(ASCII(right(@nodeid,1))+1) --尾数不为Z的情况下,递增1,使用CHAR是为了字母递增 else if @nodeid = ‘ZZZZZZ‘ raiserror(‘请重建编号‘,16,1) --尾数为Z的时候,Z前一位+1,之后的0替换 else if RIGHT(@nodeid,5) = ‘ZZZZZ‘ set @nodeid = CHAR(ASCII(@nodeid)+1) + ‘00000‘ else if RIGHT(@nodeid,4) = ‘ZZZZ‘ set @nodeid = left(@nodeid,1) + CHAR(ASCII(right(@nodeid,5))+1) + ‘0000‘ else if RIGHT(@nodeid,3) = ‘ZZZ‘ set @nodeid = left(@nodeid,2) + CHAR(ASCII(right(@nodeid,4))+1) + ‘000‘ else if RIGHT(@nodeid,2) = ‘ZZ‘ set @nodeid = left(@nodeid,3) + CHAR(ASCII(right(@nodeid,3))+1) + ‘00‘ else if RIGHT(@nodeid,1) = ‘Z‘ set @nodeid = left(@nodeid,4) + CHAR(ASCII(right(@nodeid,2))+1) + ‘0‘ --更新_sysparameters update _sysparameters set nodeid = @nodeid where nodetype=‘rowid‘ and nodeid = @oldnodeid if @@rowcount <> 0 begin select @xxxx = @nodeid commit end else begin raiserror(‘rowid 重复!‘,16,1) rollback end GO
4. 创建计量单位表
--uom:计量单位,uomname:计量单位名称 CREATE TABLE guom(UOM VARCHAR(50) NOT NULL PRIMARY KEY,uomname VARCHAR(40)) INSERT INTO guom values(‘%‘,‘百分比‘) INSERT INTO guom values(‘UOM‘,‘通用单位,用于无法确定单位的虚拟物料‘) --数据根据实际情况设置,通用单位必须设置
标签:
原文地址:http://www.cnblogs.com/wshzf/p/4459069.html