شناخت سیٹ کے ساتھ کالم داخل کریں
ایس کیو ایل سرور میں ایک "شناخت" کی خصوصیت ہے جو ریکارڈ شامل کرنے پر ترتیب وار نمبر کو 1 سے مخصوص کالم میں خود بخود سیٹ کرتی ہے۔ مثال کے طور پر، اگر آپ کالم اے میں شناخت سیٹ کرتے ہیں اور 3 ریکارڈ شامل کرتے ہیں، کالم اے خود بخود 1، 2 اور 3 کی اقدار سے آباد ہوتا ہے جس ترتیب میں آپ نے انہیں شامل کیا ہے۔
یہاں تک کہ اگر آپ داخل بیان استعمال کرتے ہیں، تو قدر خود بخود سیٹ ہو جاتی ہے، لہذا واضح طور پر قدر مقرر کرنے کی ضرورت نہیں ہے، لیکن میں سمجھتا ہوں کہ ایسے معاملات ہیں جہاں آپ قدر کو واضح طور پر سیٹ کرنا چاہتے ہیں کیونکہ یہ غیر ملکی کلید وغیرہ کے لئے استعمال کیا جاتا ہے۔
مثال کے طور پر، فرض کریں کہ "شناخت" کی جائیداد کے ساتھ ایک میز ہے جو "شناختی" کالم میں قائم ہے جیسا کہ اعداد و شمار میں دکھایا گیا ہے۔
ایک داخل بیان جو اس جدول میں قدر داخل کرتا ہے، بشمول شناختی کالم، اس طرح نظر آئے گا:
insert into [テーブル名] ([ID], [Value]) values (1, 1)
تاہم، جب میں اسے چلانے کی کوشش کرتا ہوں، تو میں سمجھتا ہوں کہ مندرجہ ذیل غلطی ظاہر ہوگی۔
ایم ایس جی 544، لیول 16، اسٹیٹ 1، لائن 1 جب IDENTITY_INSERT آف پر سیٹ ہو جاتا ہے تو واضح اقدار کو جدول 'ایکس ایکس ایکس' کے شناختی کالم میں داخل نہیں کیا جا سکتا۔
وہ کالم جو اصل میں شناخت پر سیٹ کیے گئے ہیں ان کے بارے میں فرض کیا جاتا ہے کہ اقدار خود بخود سیٹ ہو جاتی ہیں، لہذا آپ واضح طور پر اقدار کا تعین نہیں کر سکتے۔
اگر آپ واقعی اسے سیٹ کرنا چاہتے ہیں، تو آپ کو "IDENTITY_INSERT" کو "آن" پر سیٹ کرنے کی ضرورت ہے جیسا کہ نقص پیغام میں بیان کیا گیا ہے۔ داخل کرنے سے پہلے IDENTITY_INSERT آن کریں، اور داخل مکمل ہونے پر واپس آف پر جائیں، جیسا کہ درج ذیل ایس کیو ایل میں ہے:
set identity_insert [テーブル名] on;
insert into [テーブル名] ([ID], [Value]) values (1, 1)
set identity_insert [テーブル名] off;
-- 確認
select * from [テーブル名];
اب آپ واضح طور پر قدر سیٹ کر سکتے ہیں اور اسے داخل کر سکتے ہیں۔ جدول استعمال کرتے ہوئے داخل کریں-منتخب کریں بھی جائز ہے۔
شناخت کے ساتھ کالم خود بخود 1 سے اقدار تفویض کیے جاتے ہیں، لیکن اگر آپ واضح طور پر اقدار کو مقرر کرتے ہیں جیسا کہ اوپر بیان کیا گیا ہے، تو آپ سوچ رہے ہوں گے کہ آگے کون سا نمبر تفویض کیا جائے گا۔ اس صورت میں جدول میں سب سے زیادہ قدر شامل کرنے کے بعد نمبر سے تفویض کردہ اگلی قدر تفویض کی جاتی ہے، لہذا جب نیا ریکارڈ داخل کیا جاتا ہے تو کوئی نقلی قدر نہیں ہوتی۔ (تاہم معذوری وغیرہ کی وجہ سے استثنیٰ موجود ہے)