ورود

View Full Version : ریست کردن ID برای هر روز



mrajabpour
چهارشنبه 21 فروردین 1392, 18:36 عصر
درود، میخوام دو فیلد کلید داشته باشم، یکی تاریخ یکی عدد. عدد inc باشه و برای رکوردهای هر روز از یک شروع بشه؟؟؟ مثال:
date int 1 01/01/2013 2 01/01/2013 3 01/01/2013 ... 1 01/02/2013 2 01/02/2013 3 01/02/2013 ... میشه از تریگر استفاده کرد ولی میخوام بدونم راه بهتری هست؟ mysql بدون هیچ زحمتی این کار رو انجام میده.. :( ولی sqlServer چطور؟؟

Mahmoud.Afrad
پنج شنبه 22 فروردین 1392, 00:57 صبح
برحسب تاریخی که میخواهید ثبت کنید بزرگترین عدد را Select کنید و یکی بهش اضافه کنید. اگر هم چنین تاریخی ثبت نشده باشه مقدار null میده که توسط isnull اونو تبدیل به 1 میکنیم.

declare @d varchar set @d = '01/02/2013'
insert into tbl (DateField , NumberField) values ( @d , (select ISNULL(MAX(NumberField)+1 , 1) from tbl where DateField=@d) )

DateField ستون تاریخ و NumberField ستون عددی هست.