আপনি একসাথে নতুন টেবিল তৈরি করতে এবং পপুলেট করতে একটি যোগদান ব্যবহার করতে পারেন:
SELECT
t.*
INTO
dbo.NewTable
FROM
dbo.TableWithIdentity AS t
LEFT JOIN dbo.TableWithIdentity ON 1 = 0
;
1 = 0
শর্তের কারণে, ডান পাশের কোনও মিল নেই এবং এভাবে বাম পাশের সারিগুলির সদৃশতা প্রতিরোধ করা হবে এবং এটি বাহ্যিক জোড় হওয়ায় বাম পাশের সারিগুলিও মুছে ফেলা হবে না। অবশেষে, এটি একটি যোগদানের কারণে, পরিচয় সম্পত্তিটি মুছে ফেলা হবে।
কেবলমাত্র বাম দিকের কলামগুলি নির্বাচন করা, কেবলমাত্র dbo.TableWithIdentity ডেটা-ভিত্তিক, যেমন পরিচয় সম্পত্তিটি ছিনতাইয়ের সাথে একটি অনুলিপি তৈরি করবে produce
যা যা বলা হচ্ছে, ম্যাক্স ভার্নন একটি মন্তব্যে একটি বৈধ পয়েন্ট উত্থাপন করেছেন যা মাথায় রাখার মতো। উপরের ক্যোয়ারির এক্সিকিউশন প্ল্যানটি যদি আপনি দেখেন:
আপনি লক্ষ্য করবেন যে উত্স সারণীটি একবারে কার্যকর করার পরিকল্পনায় উল্লেখ করা হয়েছে। অপরটি উদাহরণটি অপটিমাইজার দ্বারা মুছে ফেলা হয়েছে।
সুতরাং, যদি আশাবাদী সঠিকভাবে প্রতিষ্ঠিত করতে পারেন যে পরিকল্পনায় যোগদানের ডান দিকের প্রয়োজন নেই, তবে এটি আশা করা যুক্তিসঙ্গত হওয়া উচিত যে এসকিউএল সার্ভারের ভবিষ্যতের সংস্করণে এটি সনাক্ত করতে সক্ষম হবে যে পরিচয়ের সম্পত্তিটি হওয়া উচিত নয় need মুছে ফেলা হয়েছে, যেহেতু কোয়েরি পরিকল্পনা অনুসারে উত্স সারিটিতে আর একটি পরিচয় কলাম নেই set এর মানে হল যে উপরের প্রশ্নটি কোনও পর্যায়ে প্রত্যাশা অনুযায়ী কাজ করা বন্ধ করে দিতে পারে।
তবে ypercubeᵀᴹ দ্বারা যথাযথভাবে উল্লেখ করা হয়েছে , এখনও পর্যন্ত ম্যানুয়ালটি স্পষ্ট করে জানিয়েছে যে এখানে যদি যোগ দেওয়া হয় তবে পরিচয়ের সম্পত্তি সংরক্ষণ করা হয় না:
যখন কোনও বিদ্যমান পরিচয় কলামটি একটি নতুন টেবিলের মধ্যে নির্বাচন করা হয়, নতুন কলাম আইডেন্টিটি সম্পত্তি হিসাবে উত্তরাধিকার সূত্রে প্রাপ্ত হয়, [...] [টি] যদি সে নির্বাচনী বিবৃতিতে যোগদান না করে।
সুতরাং, যতক্ষণ না ম্যানুয়ালটি এটি উল্লেখ করে চলেছে, আমরা সম্ভবত আশ্বাস দিতে পারি যে আচরণটি একই রকম থাকবে।
যশ Shaneis এবং ypercubeᵀᴹ চ্যাটে একটি সম্পর্কিত বিষয় আনার জন্য।
JOIN (SELECT 1) AS dummy ON 1 = 1
কাজ করবে ?