এসকিউএল সার্ভারে @ টেবিল, একটি # টেবিল এবং একটি ## টেবিলের মধ্যে পার্থক্য কী?
এসকিউএল সার্ভারে @ টেবিল, একটি # টেবিল এবং একটি ## টেবিলের মধ্যে পার্থক্য কী?
উত্তর:
#table অস্থায়ী টেবিলটিকে স্থানীয় (কেবল এটির ব্যবহারকারীর কাছে দৃশ্যমান) বোঝায়।
##table একটি গ্লোবাল (সমস্ত ব্যবহারকারীর কাছে দৃশ্যমান) অস্থায়ী সারণিকে বোঝায়।
@variableName এমন ভেরিয়েবলকে বোঝায় যা এর ধরণের উপর নির্ভর করে মান ধরে রাখতে পারে।
#এবং ##টেবিল প্রকৃত টেবিল টেম্প ডাটাবেসের মধ্যে প্রতিনিধিত্ব আছে। এই সারণিতে সূচি এবং পরিসংখ্যান থাকতে পারে এবং একটি সেশনে স্প্রোকগুলি জুড়ে অ্যাক্সেস করা যায় (বৈশ্বিক টেম্প টেবিলের ক্ষেত্রে এটি সেশন জুড়ে উপলব্ধ)।
@ টেবিলটি একটি সারণী পরিবর্তনশীল।
আমি # টেবিল এবং @ টেবিলের মধ্যে পার্থক্যগুলিতে মনোনিবেশ করব। ## টেবিলটি একটি বিশ্বব্যাপী অস্থায়ী টেবিল এবং এসকিউএল সার্ভার ব্যবহারের 10 বছরেরও বেশি সময় ধরে রেকর্ডের জন্য আমি একটি বৈধ ব্যবহারের ক্ষেত্রে আসতে পারি না। আমি নিশ্চিত যে কিছু বিদ্যমান আছে তবে বস্তুর প্রকৃতি এটিকে অত্যন্ত ব্যবহারযোগ্য আইএমএইচও করে তোলে।
@মার্ক_স দ্বারা @ যোনার প্রতিক্রিয়া একেবারে সত্য: এটি একটি প্রচলিত রূপকথা যে টেবিলের পরিবর্তনগুলি সর্বদা স্মৃতিতে থাকে। কোনও টেবিল ভেরিয়েবলের জন্য ডিস্কে যেতে এবং টেম্প টেবিলের মতো কাজ করা আসলে এটি বেশ সাধারণ।
যাইহোক আমি @ অ্যাস্টান্ডার দ্বারা নির্দেশিত লিঙ্কগুলি অনুসরণ করে পার্থক্যগুলির সেটটি পড়তে পরামর্শ দিচ্ছি। পার্থক্যের বেশিরভাগ ক্ষেত্রে আপনি @ টেবিল ভেরিয়েবলগুলির সাথে সীমাবদ্ধতা জড়িত।
CREATE TABLE #t
একটি সারণী তৈরি করে যা কেবলমাত্র প্রদর্শিত এবং সেই সংযোগ চলাকালীন একই ব্যবহারকারী যা অন্য সংযোগ তৈরি করে অন্য সংযোগ থেকে টেবিল # টি দেখতে সক্ষম হবে না।
CREATE TABLE ##t
অন্যান্য সংযোগগুলিতে দৃশ্যমান একটি অস্থায়ী টেবিল তৈরি করে। তৈরির সংযোগ শেষ হয়ে গেলে টেবিলটি বাদ দেওয়া হয়।
SqlConnection.Open()সঙ্গে একই সংযোগ স্ট্রিং হয় একই সংযোগ ?