【求助】用存储过程产生流水号,考虑并发! 本帖最后由 georgehym 于 2011-11-19 21:40:49 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --下面的代码生成长度为8的编号,编号以BH开头,其余6位为流水号。--得到新编号的函数CREATE FUNCTION f_NextBH()RETURNS char(8)ASBEGIN RETURN(SELECT 'BH'+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK))ENDGO--在表中应用函数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 1BH000002 2BH000003 4BH000004 14--*/ 参照单号记数器http://topic.csdn.net/u/20111030/18/8e4c77b0-7a88-4276-ba52-b9e7810a5e3d.html 高手帮我看一下,sql建表创立主键时,有没有什么错误?【谢谢】 存储过程的赋值字符,急(新手发问) 继续谁能帮我解决这个~~~还有400分啦 求一分类统计报表做法 高级列转行 谁能告诉我技术分在哪看? 字符串转换 t-sql语句怎么写? 征求case语法! 新人转换格式失败,请大神指教 请教一下SQL语句 win7下安装SQL问题
--得到新编号的函数
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
--*/
单号记数器
http://topic.csdn.net/u/20111030/18/8e4c77b0-7a88-4276-ba52-b9e7810a5e3d.html