PDA

View Full Version : سوال: مشکل در SQL Server



uness12
شنبه 04 آذر 1391, 20:00 عصر
سلام دوستان من این سوالو تو قسمت پایگاه داده هم مطرح کردم ولی گفتم شاید تو C# زود تر به نتیجه برسم، یه بانک دارم که دارای دو جدول است برای یکی از جدول ها کلید اصلی گذاشتم از نوع int که اتوماتیک پر میشه (identity) رو yes گذاشتم ، حالا مشکل من اینه که وقتی مثلا رکورد های با کد اصلی از 1 تا 60 رو پاک میکنم ادامه آن از 60 شروع میشه راهی نیست که ابتدا بیاد سرچ کنه ببینه آیا 1 هست یا نه بعد اگه نبود 1 رو بزاره؟

Mozhdeh.Hemati
شنبه 04 آذر 1391, 22:38 عصر
سلام،

احتمالا هدفت از این کار اینه که وقتی داده ها رو توی برنامه لود میکنی شماره ردیف ها رو درست نشون بده! ولی باید به عرضت برسونم که برای اینکار احتیاجی نیست که بیای روی مقادیر کلید اصلی مانور بدی، اصلا انجام اینکار خلاف اصول و فلسفه طراحی پایگاه داده است. برای اینکه شماره ردیف ها رو توی برنامه به صورت ترتیبی نشون بدی از توابع آماده اس کیو ال سرور استفاده کن و خودت رو درگیر عوض کردن مقدار فیلد کلید اصلی نکن.

مثال:

SELECT ROW_NUMBER() OVER (Order by Id) AS RowNumber, Field1, Field2, Field3 FROM Table1

منبع: http://stackoverflow.com/questions/961007/how-do-i-use-row-number-in-sql