PDA

View Full Version : خطای IDENTITY_INSERT در stored procedure



Marzieh_A
سه شنبه 22 دی 1388, 18:50 عصر
یه مشکل در stored procedure ها.
وقتی execute رو می زنم error زیر گرفته میشه.




An explicit value for the identity column in table 'perimage' can only be specified when a column list is used and IDENTITY_INSERT is on.



قیل و بعد از insert هم set identity_insert PerImage ON و set identity_insert PerImage Off ( که اسم جدولم perimage هست) رو گذاشتم اما بازم خطا می گیره.


دوستان کمـــــــــــــــــــــــ ـــک :گریه:

AminSobati
سه شنبه 22 دی 1388, 22:41 عصر
ممکنه دقیقا کدی که اجرا میکنید رو پست بفرمایید؟

Marzieh_A
سه شنبه 22 دی 1388, 22:47 عصر
ممنون مشکل رو پیدا کردم.
اما برای اینکه اگر کس دیگه هم این مشکل رو پیدا کرد و احتمالا این تاپیک رو دید متوجه جوابش بشه من خودم دلیلش رو توضیح میدم.
دلیل به وجود اومدن این خطا اینه که یه ستون identity تعریف کردید که AutoIncrement هست و خود به خود در هر ردیف به تعدادی که مشخص کردید به عدد قبلی که از شروعش رو هم خودتون معین می کنید اضافه میشه.
برای کار با اینجور ستون ها در Stored Procedure باید دستور insert رو به صورت زیر بنویسید.



set identity_insert TableName ON;
insert into TableName values ( مقادیر );
set identity_insert TableName OFF;

البته باید حواستون باشه که تو مقادیر دیگه مقدار برای اون ستون identity در نظر نگیرید چون به صورت اتوماتیک فیلد مربوط به این ستون در هر ردیف پر میشه(اشتباهی که من کرده بودم:گیج:).

این تجربه ای بود که من به دست آوردم امیدوارم به درد دیگران هم بخوره