我上面的只是我之前的参考代码。
GetSQL是一个自定义函数,格式的:GetSql(返回字段,SQL语句)
GetSQL是一个自定义函数,格式的:GetSql(返回字段,SQL语句)
解决方案 »
- 如果合并多个表的列
- 数据库的问题,急。。。。
- 求解,能不能将查询结果拆分
- 请教一下调查表数据结构的设计....
- 关于ExecuteScalar的返回值问题,当检索失败时,返回空,成功时,返回第一个值。当第一个值恰好是0时,当然返回0。这个时候怎么样判断是
- 天啊!我也不能在win 2000企业版中安装sql 2000企业版了!?
- 求一个sql查询语句,---郁闷
- 如何用VB代码建立SQL SERVER数据库
- 怎样在SQL查询分析器里生成动态的一个SQL字符串,这个字符串里有"'"这个SQLSERVER里的特殊字符
- 一个SQL语句的写法。马上给分。
- 这是什么问题?
- 请问:是什么原因造成 SQL2000(打补丁的个人版)数据库显示置疑?
在学习中遇到这个问题
数据库里有编号字段
BH00001
BH00002
BH00003
BH00004
如何实现自动增长 --下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。
--得到新编号的函数
CREATE FUNCTION f_NextBH()
RETURNS char(8)
AS
BEGIN
RETURN(SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK))
END
GO--在表中应用函数
CREATE TABLE tb(
BH char(8) PRIMARY KEY DEFAULT dbo.f_NextBH(),
col int)--插入资料
BEGIN TRAN
INSERT tb(col) VALUES(1)
INSERT tb(col) VALUES(2)
INSERT tb(col) VALUES(3)
DELETE tb WHERE col=3
INSERT tb(col) VALUES(4)
INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)
COMMIT TRAN--显示结果
SELECT * FROM tb
/*--结果
BH col
---------------- -----------
BH000001 1
BH000002 2
BH000003 4
BH000004 14
--*/ create table tb
(id int identity,
name varchar(10),
code as 'BH'+right('0000'+cast(id as varchar),5))
go
insert tb(name) select 'A'
union all select 'B'
union all select 'C'
union all select 'D'select * from tbdrop table tb/*
id name code
----------- ---------- ------------
1 A BH00001
2 B BH00002
3 C BH00003
4 D BH00004(所影响的行数为 4 行)
*/
楼上,你的方法偶了解到。。但我要的是用一条SQL语句得出两个表的最大值
(
select max(right(Rcode,3)) as MaxID from ReqEdit where len(Rcode)=14
union
select max(right(Rcode2,3)) as MaxID from MaxTable where len(Rcode2)=14
) a
select left((select rcode2 from MaxTable where len(Rcode2)=14),10)+'-'+(select max(right(Rcode,3)) as MaxID from ReqEdit where len(Rcode)=14)
select left((select rcode2 from MaxTable where len(Rcode2)=14),10)+'-'+right('000'+ltrim(cast((select max(right(Rcode,3)) as MaxID from ReqEdit where len(Rcode)=14) as int)+1),3)
(我反复测试过了一段时间,主要是理论上存在同时抢号,并且抢到同一个号并且两个号从抢到至存储由于网络等原因存在时差.这时就会出现重号,尤其是像POS终端这类操作频繁的应用.)
后来,采用了一些比较成熟的应用系统的编号方法,
就是在整个编号其中某一段用PC机编号,或操作姓名或代码,或其它什么的关键字加以区别,再加流水号,就能避免抢号的问题了.