帮忙看看 如何实现有一组有规则的编号(如200305310001…200305310999) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 declare @i intset @i = 1while @i < 1000print convert(varchar(8),getdate(),112)+right(10000+@i,4) --下面的代码生成长度为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--*/ select 200305310001+numberfrom master..spt_valueswhere type='p' and number<999/*---------------------------------------200305310001200305310002200305310003200305310004200305310005200305310006200305310007200305310008.. +1declare @i intset @i = 1while @i < 1000beginprint convert(varchar(8),getdate(),112)+right(10000+@i,4)set @i=@i+1end Group By用法 sql数据库的动态的传递参数以及查询 求一简单的SQL语句! 这样的SQL有人写过吗?**比较典型的例子** 请教各位一个安装SQLServer2000 Personal的问题 请教一个SQL语句的写法 sql server 支不支持recordcount 请教怎么编译proc文件? 如何改变SQL SERVER的日期默认格式??? SQL多表查询,请大神指导。 查询速度问题 如何分析表中定长数据行的存储信息
set @i = 1
while @i < 1000
print convert(varchar(8),getdate(),112)+right(10000+@i,4)
--得到新编号的函数
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
--*/
from master..spt_values
where type='p' and number<999/*
---------------------------------------
200305310001
200305310002
200305310003
200305310004
200305310005
200305310006
200305310007
200305310008
..
set @i = 1
while @i < 1000
begin
print convert(varchar(8),getdate(),112)+right(10000+@i,4)
set @i=@i+1
end