ورود

View Full Version : سوال: identity در sql server 2005



mbasirati
شنبه 29 آبان 1389, 12:11 عصر
سلام
1)چه طوری میشه یه فیلدی از جدول که به صورت identity یعنی auto number تعریف شده رو توی جدول به صورت دستی مقدار دهی کرد
2) وقتی ما یه فیلدی رو ازنوع identity تعریف میکنیم حتی اگه تمام رکوردهای جدولو پاک کنیم و دوباره اطلاعات درج کنیم این فیلد از ادامه شروع به مقدار دهی میشه ، چه جوری میشه وقتی رکوردها رو پاک می کنیم این فیلد هم دوباره از 1 شروع بشه؟
امیدوارم سوالام رو متوجه شده باشید
ممنون
یاعلی

حمیدرضاصادقیان
شنبه 29 آبان 1389, 12:42 عصر
سلام.


چه طوری میشه یه فیلدی از جدول که به صورت identity یعنی auto number تعریف شده رو توی جدول به صورت دستی مقدار دهی کرد

خودتون دارید میگید Autonumber . پس نیازی نیست شما مقدار دهی کنید و اینکارو خود Sql انجام میده.اگر میخواهید خودتون مقدار دهی کنید پس autonumber چی هست؟؟


وقتی ما یه فیلدی رو ازنوع identity تعریف میکنیم حتی اگه تمام رکوردهای جدولو پاک کنیم و دوباره اطلاعات درج کنیم این فیلد از ادامه شروع به مقدار دهی میشه ، چه جوری میشه وقتی رکوردها رو پاک می کنیم این فیلد هم دوباره از 1 شروع بشه؟

اگر با استفاده از دستور Truncate محتوای جدول رو پاک کنید مقدار identity ریست خواهد شد.
همچنین میتوانید با استفاده از دستور dbcc checkident میتونید اونو reset کنید.
به مثال توجه کنید

Copy
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType", RESEED, 1);
GO

mbasirati
چهارشنبه 03 آذر 1389, 23:41 عصر
سلام.



خودتون دارید میگید Autonumber . پس نیازی نیست شما مقدار دهی کنید و اینکارو خود Sql انجام میده.اگر میخواهید خودتون مقدار دهی کنید پس autonumber چی هست؟؟



اگر با استفاده از دستور Truncate محتوای جدول رو پاک کنید مقدار identity ریست خواهد شد.
همچنین میتوانید با استفاده از دستور dbcc checkident میتونید اونو reset کنید.
به مثال توجه کنید

Copy
USE AdventureWorks2008R2;
GO
DBCC CHECKIDENT ("Person.AddressType", RESEED, 1);
GO


با تشکر از لطف و توجه شما
ولی درمورد سوال اول من سرچ کردم ویه دستوری برای این کار پیدا کردم

SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }

حمیدرضاصادقیان
پنج شنبه 04 آذر 1389, 09:18 صبح
سلام.
بله با اینکار شما مقداردهی رو متوقف می کنید ولی ماهیت ستونهای identity این هست که دیگه مقدار دهی نکنیم.