当插入一条数据后根据当前时间在当前行内插入编号,根据当前时间自动生成? 如题 怎么做? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 --以下代码生成的编号长度为12,前6位为日期信息,格式为YYMMDD,后6位为流水号。--创建得到当前日期的视图CREATE VIEW v_GetDateASSELECT dt=CONVERT(CHAR(6),GETDATE(),12)GO--得到新编号的函数CREATE FUNCTION f_NextBH()RETURNS char(12)ASBEGIN DECLARE @dt CHAR(6) SELECT @dt=dt FROM v_GetDate RETURN( SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6) FROM tb WITH(XLOCK,PAGLOCK) WHERE BH like @dt+'%')ENDGO--在表中应用函数CREATE TABLE tb(BH char(12) PRIMARY KEY DEFAULT dbo.f_NextBH(),col int)--插入资料INSERT tb(col) VALUES(1)INSERT tb(col) VALUES(2)INSERT tb(col) VALUES(3)DELETE tb WHERE col=3INSERT tb(col) VALUES(4)INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14)--显示结果SELECT * FROM tb/*--结果BH col ------------------- ----------- 050405000001 1050405000002 2050405000003 4050405000004 14--*/----------------------------------------------- INSERT TB (编号)SELECT CONVERT(VARCHAR(10),GETDATE(),120) insert into ta select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','') INSERT TB (编号)SELECT CONVERT(VARCHAR(10),GETDATE(),112) select replace(replace(replace(convert(varchar,getdate(),120),'-',''),':',''),' ','')/*20090810094221*/ 如果编号是唯一的,那么可以设置这个列为IDENTITY我不知道你是不是这个意思。 insert into tb(id,SonID) values(1,replace(replace(replace(convert(varchar(20),getdate(),120),'-',''),' ',''),':',''))select * from tb/*id SonID----------- --------------------------------1 20090810095024*/ 哪一段sql效率高??? unicode编码下的参数化查询 开始菜单中SQL server 企业管理器 点了没反映,也没什么报错,查询分析器可以使用。郁闷中…… 关于数据库关系表 请教高手,这样的要求如何实现 查询表中的记录数的语句是怎么样的 为什么我的查询分析器能连实例名,不能连ip地址??(在线给分) 求救 数据库 急急 ^…^ 大侠帮我,我用delphi编写了一个关于ASP的组件,但在网站的global.asa文件...... 如何在不想安装MSSQL的仅连接或客户端连接来连连接数服务器?? SQL Server 中@符号表示什么意思啊 求一有点难度的查询语句
--创建得到当前日期的视图
CREATE VIEW v_GetDate
AS
SELECT dt=CONVERT(CHAR(6),GETDATE(),12)
GO--得到新编号的函数
CREATE FUNCTION f_NextBH()
RETURNS char(12)
AS
BEGIN
DECLARE @dt CHAR(6)
SELECT @dt=dt FROM v_GetDate
RETURN(
SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6)
FROM tb WITH(XLOCK,PAGLOCK)
WHERE BH like @dt+'%')
END
GO--在表中应用函数
CREATE TABLE tb(
BH char(12) PRIMARY KEY DEFAULT dbo.f_NextBH(),
col int)--插入资料
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)--显示结果
SELECT * FROM tb
/*--结果
BH col
------------------- -----------
050405000001 1
050405000002 2
050405000003 4
050405000004 14
--*/-----------------------------------------------
insert into ta
select replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')
20090810094221
*/
我不知道你是不是这个意思。
replace(
replace(
replace(
convert(varchar(20),getdate(),120)
,'-','')
,' ','')
,':',''))select * from tb
/*
id SonID
----------- --------------------------------
1 20090810095024*/