--根據給定的編碼比如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...