PDA

View Full Version : تولید سریال در جدول دیتیل



rmb_ali
یک شنبه 09 دی 1386, 11:33 صبح
آیا میشه بصورت اتوماتیک ردیفهای یه جدول دیتیل رو تولید کرد البته میشه ولی لطف کنید راهنمایی بفرمایید چه جوری بطور مثال در جدول دیتیل یه id داریم که کلید جدول اصلی (مستر) هست و یه فیلد radif داریم که توی جدول دیتیل باید بصورت افزایشی برای هر id پر بشه کوئریشم اینه select max(tartib) from consdtl where id = :id که :id باید مقدار جاری رکورد id باشه البته من نمیدونم چه جوری میتونم مقدار جاری یه رکورد رو توی کوئری بیارم البته در حالت insert

kobari
یک شنبه 09 دی 1386, 12:13 عصر
اگر دیتابیس شما datatype های serial یا sequence را پشتیبانی کنه میتوانید ستون radif را از این جنس تعریف کنید و از آن به بعد موقع هر اینسرت این ستون بطور اتوماتیک مقدار دهی خواهد شد.

rmb_ali
یک شنبه 09 دی 1386, 12:51 عصر
منظورتون از دیتابیس چیه من توی ms sql server 2000 دیتابیس دارم و نمیدونم این دیتا تایپ ها رو از کجا باید پیدا کنم

MShirzadi
یک شنبه 09 دی 1386, 13:17 عصر
ببینید باید یه فیلد از نوع int بکیری و مقدار Identity اون رو Yes کنی اونوقت به صورت خودکار شماره میندازه .
کد Sql اون هم می شه :


Create Table tblA
(
ID Int Identity(1,1) Primary Key
,Name Nvarchar(100)
)

rmb_ali
یک شنبه 09 دی 1386, 13:54 عصر
اینو من برای فیلد id در نظر گرفتم ولی مشکل من اینه که توی فایل دیتیل باید radif با تغییر id ریست بشه به داده های زیر توجه کنید
id=1 radif=1
id=1 radif=2
id=1 radif=3
id=2 radif=1
id=2 radif=2
id=2 radif=3
id=2 radif=4
فکر کنم منظورم رو با این داده ها متوجه بشید میبینید که با تغییر id فیلد radif ریست میشه بنابراین نمیشه از identity استفاده کرد

SYNDROME
یک شنبه 09 دی 1386, 18:26 عصر
شما می توانید بعد از Insert اطلاعات به وسیله یک کرسر رکوردها را یکی خوانده و از عدد یک به بالا مقدار دهی کنید.
موفق باشید

rmb_ali
یک شنبه 09 دی 1386, 21:45 عصر
من در سطح برنامه نویسی میتونم اون موقعی که دارم اطلاعات رو از کاربر میگیریم اینم پر کنم ولی میخوام اینکار در سطح دیتابیس و به صورت اتوماتیک انجام بشه یه چیزی مثل identity

rmb_ali
دوشنبه 10 دی 1386, 08:11 صبح
من اگر بخواهم این فیلد رو در زمان اینسرت بوسیله trigger پر کنم میشه کدی که باید بنویسم رو برام بزارید

MohammadSoft
دوشنبه 10 دی 1386, 09:15 صبح
سلام


SELECT ISNULL(MAX(Radif,0)) + 1 FROM tbl WHERE ID = @ID