触发器,在数据库里自动生成TimeTamp的触发器
求一个 触发器,在数据库里自动生成TimeTamp的触发器
数据库中有一个字段为TimesTamp,我希望插入一个触发器可以自动插入TimesTamp。
TimesTamp的格式为nvchar(20),希望是一个由日期转换成的数字。
TimesTamp的格式:2014-1-1 10:20:30 就转换成 20140101102030。
如果这个TimesTamp在库中已经存在,则在最后+1 ,以上列为列值为 20140101102031
直至 这个TimesTamp 在数据库中保持唯一性。
------解决方案--------------------
数据库中有一个字段为TimesTamp,我希望插入一个触发器可以自动插入TimesTamp。
TimesTamp的格式为nvchar(20),希望是一个由日期转换成的数字。
TimesTamp的格式:2014-1-1 10:20:30 就转换成 20140101102030。
如果这个TimesTamp在库中已经存在,则在最后+1 ,以上列为列值为 20140101102031
直至 这个TimesTamp 在数据库中保持唯一性。
------解决方案--------------------
create function [dbo].[dtdecimal](@datetime datetime)
returns nvarchar(20)
as
begin
declare @res nvarchar(20)
declare @tmp nvarchar(20)
set @res = convert(nvarchar(20), @datetime, 21)
set @res=replace(@res,'-','')
set @res=replace(@res,':','')
set @res=replace(@res,' ','')
set @res=replace(@res,'.','')
if (select @tmp = max(主键名) from 表 where 主键名 like ''@res'%''') is not null
set @res = @tmp + '1'
returns @res
end