আপনার এখানে কয়েকটি ভিন্ন প্রশ্ন রয়েছে।
প্রশ্ন: এএনএসআই স্ট্যান্ডার্ড এসকিউএল ফাংশনগুলি কী কী?
এএনএসআই স্ট্যান্ডার্ড ফাংশনগুলি এভিজি, COUNT, এমআইএন, ম্যাক্সের মতো জিনিস। তারা 1992 এএনএসআই স্ট্যান্ডার্ডে আচ্ছাদিত , তবে এটি একটি শুকনো, বিরক্তিকর পড়ার এক হেক।
প্রশ্ন: এএনএসআই স্ট্যান্ডার্ড এসকিউএল ফাংশনগুলি কি ডাটাবেসে ডেটা পরিবর্তন করে?
না। আপনি তাদের ডেটা পরিবর্তন করতে ব্যবহার করতে পারেন - উদাহরণস্বরূপ, আমি বলতে পারি:
INSERT INTO dbo.MyReport SELECT MAX(SalespersonRevenue) FROM dbo.Sales
তবে তাদের দ্বারা, কেবল একটি এভিজি, COUNT, এমআইএন, ম্যাক্স ইত্যাদি ব্যবহারের ফলে আপনার ডাটাবেসের অভ্যন্তরে স্থায়ীভাবে ডেটা পরিবর্তন করা উচিত নয়।
প্রশ্ন: এএনএসআই মানদণ্ডটি কি আমাকে আমার নিজের ফাংশনগুলি লেখার অনুমতি দেয়?
হ্যাঁ, তবে সঠিক প্রয়োগটি বিক্রেতার কাছে বিক্রেতার কাছে পরিবর্তিত হয়। আপনার লেখা ফাংশনগুলি এএনএসআই ভাষার মান মেনে চলতে পারে তবে আপনি নিজের ফাংশনের ভিতরে যা করেন তা পার্শ্ব প্রতিক্রিয়া তৈরির মতো ভয়াবহ আকার ধারণ করতে পারে।
- উদ্দেশ্যমূলক আচরণ নিয়ে আলোচনা করার সময় , ক্রস-প্ল্যাটফর্মের উত্তর পাওয়া সম্ভব।
- পার্শ্ব প্রতিক্রিয়া আলোচনা করার সময় , এটি হয় না।
প্রশ্ন: আমি কি ডেটা লেখার জন্য নিজস্ব ফাংশন তৈরি করতে পারি?
কেন নিশ্চিত, আপনি যদি সৃজনশীল হন। আমি একজন মাইক্রোসফ্ট এসকিউএল সার্ভার লোক, তাই আমি সেই প্ল্যাটফর্মটিতে ফোকাস করতে যাচ্ছি। বই অনলাইন এর ফাংশন পৃষ্ঠাতে বলা হয়েছে:
ব্যবহারকারী-সংজ্ঞায়িত ফাংশনগুলি এমন ক্রিয়া সম্পাদন করতে ব্যবহার করা যাবে না যা ডাটাবেস স্থিতি সংশোধন করে।
যা আমি বলি:
তুমি আমার আসল বাবা নও
সুতরাং এখানে আমি কীভাবে নিয়মগুলি ভঙ্গ করব। সতর্কতা: খুব খারাপ ধারণা অনুসরণ করে।
- আপনার কার্যক্রমে, এই অশুভ উদ্দেশ্যে বিশেষভাবে তৈরি করা একটি নতুন টেবিলটি জিজ্ঞাসা করুন এবং তারপরে এমন কিছু তৈরি করুন যা নির্বাচিত বিবৃতিগুলির জন্য টেবিলটি দেখে এবং তারপরে কোনও ক্রিয়াকলাপ ছড়িয়ে দেয় (বর্ধিত ইভেন্টস, অডিটিং বা কোনও প্রোফাইলার ট্রেস)। এই নির্বাচিত বিবৃতিগুলির উপর ভিত্তি করে কাজ সম্পাদন করতে আপনি কোনও রুবে গোল্ডবার্গের ধরণের বিপরীতে মিশ্রিত করতে পারেন।
- ফাংশনে, সিএলআর কোডটি কল করুন - হেক, আপনি এমনকি একটি ওয়েব পরিষেবা কল করতে পারেন । এই ওয়েব পরিষেবাটি খুব ভালভাবে আপনার নিজের ডাটাবেসে ডেটা আবার ঠেলে দিতে পারে।
- ফাংশনে, xp_cmdshell কল করুন এবং কমান্ড প্রম্পটের মাধ্যমে কিছু করুন। (মন্তব্যগুলিতে এইচটি @ অ্যারোনবার্ট্র্যান্ড।)
এই সমস্ত উদাহরণের কার্যকারিতা এবং লেনদেনের ধারাবাহিকতার আকারে বিশাল ত্রুটি রয়েছে। আপনি কেবল জিজ্ঞাসা করেছেন যে এটি তাত্ত্বিকভাবে করা যায় কিনা, এবং উত্তরটি হ্যাঁ আছে। আমি তাদের নিজের কোডগুলিতে কখনও ব্যবহার করব না - আমি পিছনে এসে জিজ্ঞাসা করব, "আমি এখানে যে ব্যবসায়িক লক্ষ্য অর্জন করতে চাইছি তা কী, এবং পারফরম্যান্স এবং লেনদেনের ধারাবাহিকতা অর্জনের জন্য আমি কীভাবে এটি করতে পারি? ? " যদি আপনি সেগুলির বিষয়ে নির্দিষ্ট পরামর্শ চান তবে আমি নির্দিষ্টকরণের সাথে একটি পৃথক স্ট্যাক প্রশ্ন জিজ্ঞাসা করব।