SQL Server 自動生成字串主鍵 流水號

2021-05-25 06:59:12 字數 1154 閱讀 1181

--根據給定的編碼比如emp,生成乙個字串型別的流水號,如:20110102emp0001

--建立表

create table primkey(

cdate datetime not null,

cchar varchar (3) not null,

ccount int not null

)--建立主鍵的儲存過程

create proc getprimkey

@char varchar(3),

@res nvarchar(15) output

as begin

declare @count int

begin try

select @count=isnull(ccount,0) from primkey where convert(varchar(8),cdate,112)=convert(nvarchar(8),getdate(),112) and cchar=@char

set @count=isnull(@count,0);

if (@count>0)

begin

update primkey setccount=@count+1 where convert(varchar(8),cdate,112)=convert(nvarchar(8),getdate(),112) andcchar=@char

endif(@count<=0)

begin

insert into primkey values(convert(nvarchar(10),getdate(),21),@char,1);

endset @res =convert(nvarchar(8),getdate(),112)+@char+right('00000000'+convert(varchar(5),@count+1),4)

end try

begin catch

set @res='one error';

end catch

end

--測試呼叫

declare @res nvarchar(20)

exec getprimkey 'emp',@res output

print @res

--create by ranen

SQL SERVER2008 自動生成索引

declare ix table index handle int,eq nvarchar 4000 included columns nvarchar 4000 name varchar 100 dbname varchar 30 with idx as select a.index handle...

sqlserver2000欄位自動生成流水號

編號規則為 re 年份 4位流水號。開始我本來也是說用觸發器或者是儲存過程實現的,但發現儲存過程不是很清楚,於是我就用觸發器。但寫了會,發現還是有些基本的問題。於是我就在網上找到了乙個很好的例項。受這個的啟發,我試驗了很多次,並終於實現了,心裡很開心的。首先 建立檢視來獲得年份,因為接下來要建立乙個...

SqlServer 自動生成日期加數字的序列號

需求 需要生成下面的序列號,前半部分是yyyymmdd格式的年月日時間數字,後半部分則是每天都從1順序增長的數字,位數要固定,中間不足的補0。在sql server 2000資料庫中測試後通過如下 功能實現如下 use master goif exists select from dbo.sysda...