# پایگاه‌های داده > SQL Server > SQL Server Integration Services - SSIS >  مشکل در auto increment کردن 3 فیلد در یک جدول در sql server 2008

## mehdi_2013

با سلام
من میخوام داخل 1 جدول 3 فیلد من بصورت خودکار باشن
یکی از فیلدهام ID جدول هست
دومی و سومی فیلدهای مثلا شماره حساب و شماره کارت هستن که میخوام بصورت خودکار تولید بشن 
اما هر کاری میکنم نمیشه
لطفا کمک کنید

----------


## m101_30

فكر نميكنم درست باشه كه شماره حساب و شماره كارت بصورت خودكار افزايش پيدا كنه.
راه حل من استفاده از تريگر يا پروسيجر هاست

----------


## mehdi_2013

میشه راهنمایی کنید چطور باید پروسیجرش رو بنویسم؟
اصلا میشه 3 تا فیلد از نوع int در یک جدول بصورت خودکار باشند؟

----------


## Kubuntu

1- برای آتونامبر کردن یک فیلد بصورت زیر عمل می کنی:
right click on a table> select Design
در سمت راست قسمت identity column اون فیلدی رو که می خوای خودش پر بشه رو انتخاب می کنی. که معمولا کلید اصلی رو آتونامبر می گیرن

برای دو ستون حساب کاربری که قبلا در جدولی ذخیره شده و من اسمش رو می ذارم A.  اگر از قبل جایی ذخیره شده، کافیست کلید اصلی جدول A را در این جدول ذخیره کنید. و هنگام نیاز به جدول A مراجعه کنید. (عرف کار اینه، چون می گی می خوای خودش پر بشه، پس یعنی قبلا نوشته شده )

بنظرم این جدولت یه خورده غیر ضروریه. می شه بهم بگی با ذخیره مجدد اطلاعاتی که یک بار ثبت شده ، می خوای چه استفاده ای ازش بکنی؟؟؟
برای اینکه خودش خودکار پر بشه نیاز به یه شرط یا مقدار هست که بشه دستور insert رو نوشت

----------


## mehdi_2013

نه جدول حساب کاربری من جدا نیست 
ببینید من یک جدول دارم با فیلد های زیر :
ID,name,family,shomare_hesab,shomare_card
در این جدول id کلید اصلی و به صورت خودکار یکی یکی اظافه میشه
ولی سوالم اینه که دو فیلد دیگه چطور باید مقدار دهی شن که تکراری نباشند (shomare_hesab,shomare_card)؟؟؟؟
میخوام این 2 فیلد هم موقع درج 1 واحد اظافه بشن مثل ID؟؟؟؟؟؟؟؟؟؟؟؟

----------


## Kubuntu

بذار ترجمه کنم که چی داری می گی!
داری می گی فیلد شماره حساب یک مقدار نامعتبر در دنیای واقعی هستش که فقط می خوای مثل کلید اصلی باشه. در نتیجه همیشه مقدار کلید با این دو تا برابره.
در این صورت کافیه: اول فیلد شماره حساب رو انتخاب کن . در پراپرتی پایین صفحه identity specification رو باز کن. مقدار IsIdentity رو yes کن.
حالا با هر insert خودش پر می کنه.

امیدوارم متوجه باشی که کارت خیلی غیر منطقیه. چون شماره حسابها خودشون بصورت خودکار و یکی یکی اضافه نمی شن

----------


## mehdi_2013

پس اگه میشه راهنمایی کنید چطوری شماره حساب تولید کنم؟
جدولش جدا باشه؟؟

----------


## Kubuntu

نه نیاز نیس جدولش جدا باشه
نحوه تولید یک شماره حساب بستگی به بانک داره که شرط و شروط ممکنه بذارن. مثلا شماره شبا از شماره سپرده گرفته شده.
کار خاصی نداره مثل ساختن رمز می مونه ولی شما چک می کنی آیا این حساب قبلا توسط شما ایجاد شده یا نه.
دستور EXISTS در sql چک می کنه آیا وجود داره یا نه.
مثال:
IF NOT EXISTS (SELECT 1 FROM dbo.[saveError] WHERE num= @e AND spName= @sp )
	BEGIN
		INSERT INTO dbo.[saveError] (num,spName,info)
		VALUES(@e,@sp, @info )
	END
در خط if می گم اگر وجود نداشت بیا اضافه کن.
اینطوری مقدار تکراری نداریم

----------


## mehdi_2013

مرسی دستتون درد نکنه

----------

