ایس کیو ایل یہ تعین کرنے کے لئے کہ آیا ڈیٹا کا ایک ٹکڑا اپ ڈیٹ یا داخل میں کلید کے ذریعہ عمل میں لایا جاتا ہے

جب صفحے کی تازہ کاری :
صفحہ تخلیق تاریخ :

اگر کلید نہ ہو تو اپ ڈیٹ یا داخل کرنے جیسے عمل میں عام طور پر کلید کی بنیاد پر منتخب کیا جاتا ہے اور اس عمل کا تعین یہ جانچ کر کیا جاتا ہے کہ آیا کوئی ایک معاملہ ہے۔ ایس کیو ایل سرور 2008 میں ایک "ضم" بیان بھی شامل کیا گیا ہے جو آپ کو ایک ہی بیان کے ساتھ اپ ڈیٹ اور داخل (اور پھر حذف) کرنے کی اجازت دیتا ہے۔ تاہم، یہ دو جدولوں کا موازنہ ہے اور واحد ڈیٹا کے لئے موزوں نہیں ہے۔

اصل میں، منتخب بیان کے ساتھ ریکارڈز کی تعداد چیک کیے بغیر اپ ڈیٹ اور داخل کا تعین کرکے صف کو آسانی سے اپ ڈیٹ کرنے کا ایک طریقہ ہے۔

update [TableName]
set [ColumnName] = @value
--    : 他更新 SQL
where [KeyColumnName] = @value
--    : 他キー比較
if @@ROWCOUNT = 0
insert into [TableName]
(
  [ColumnName]
--  : 他更新 SQL
)
values
(
  @value
--  : 他更新値
)

یہاں کلیدی لفظ "@@ROWCOUNT" ہے۔ @@ROWCOUNT ان قطاروں کی تعداد کو بازیافت کر سکتا ہے جن پر پچھلی ایس کیو ایل کا اطلاق کیا گیا تھا۔ پچھلا کوڈ پہلے اپ ڈیٹ بیان پر عمل درآمد کرتا ہے، اور اگر اسے اپ ڈیٹ کیا گیا ہے، @@ROWCOUNT 1 یا اس سے زیادہ واپس کرتا ہے، لہذا یہ اگلے داخل بیان پر عمل درآمد نہیں کرتا ہے۔ اس کے برعکس، اگر اپ ڈیٹ بیان میں کوئی قطار اپ ڈیٹ نہیں کی جاتی ہے، @@ROWCOUNT 0 واپس کرتا ہے، لہذا آئی ایف بیان فیصلے کے ذریعہ داخل کریں پر عمل درآمد کریں۔

چونکہ مندرجہ بالا ایس کیو ایل ایک سانچا ہے، اس لیے مناسب وقت پر اپ ڈیٹ کیے جانے والے کالم ناموں اور اقدار کو تبدیل کریں۔ @value صرف ایک متغیر نام ہے، لہذا اس کی جگہ وہ قدر لیں جسے آپ اپ ڈیٹ کرنا چاہتے ہیں۔