আপগ্রেডের পরে এসকিউএল কল পরিচালনা করতে কোনও সংখ্যা সেট না করুন


13

আমরা একটি নতুন সার্ভার এবং মাইক্রোসফ্ট এসকিউএল সার্ভারের আপডেট হওয়া সংস্করণ দিয়ে আমাদের পরীক্ষার পরিবেশটি আপগ্রেড করছি এবং একটি সমস্যার সমাধান করেছি।

নতুন সার্ভারে, আমাদের পুরাতন কোডটি কিছু সঞ্চিত প্রক্রিয়া চালানোর সময় "অবজেক্টটি বন্ধ হয়ে যাওয়ার পরে অপারেশন অনুমোদিত নয়" পাবে। এই বার্তাটি কখনই পুরানো সার্ভারে উপস্থিত হয়নি। যখন আমরা এটি ট্র্যাক করি, SET NOCOUNT ON;সঞ্চিত পদ্ধতিতে যুক্ত করে সমস্যাটি সমাধান করা যেতে পারে ।

আমি ডেটাবেজে ডিফল্টগুলি দেখেছি এবং ডিফল্ট সম্পর্কিত কোনও সেটিংস (এসকিউএল সার্ভার ২০০ বনাম এসকিউএল সার্ভার ২০১৪) দেখতে পাইনি।

SET NOCOUNT ONএক হাজার সঞ্চিত প্রকোপগুলিকে যুক্ত করার প্রয়োজন ছাড়াই বিশ্বব্যাপী এটিকে সমাধান করার জন্য আমার কোন সেটিংয়ের দিকে নজর দেওয়া উচিত ?


2
সমস্ত সঞ্চিত পদ্ধতিতে আপনার আচরণ নির্ভর করা উচিত যা ব্যবহারকারীর বিকল্পগুলির উপর নির্ভর করে much আমি এমনকি যুক্তি দিয়ে বলতে পারি যে প্রতিটি সঞ্চিত প্রক্রিয়া সর্বদা SET NOCOUNT ON;, সর্বদা শুরু হওয়া উচিত ।
অ্যারন বারট্রান্ড

@ অ্যারোনবার্ট্র্যান্ড আমি সম্মত; শেষ প্রজেক্ট আমি ছিল যে সেট nocount ছিল একটি টেমপ্লেট ছিল, কিন্তু যে এই সময়ে এই প্রকল্পে একটি বিকল্প হয় না
UnhandledExcepSean

নোট করুন যে আপনি সমস্ত সঞ্চিত পদ্ধতি পরিবর্তন করতে এবং সঞ্চিত প্রক্রিয়া SET NOCOUNT ON;শুরু করার পরে (পরে BEGIN) যুক্ত করতে একটি স্ক্রিপ্ট লিখতে পারেন । সঞ্চিত পদ্ধতির সংখ্যাটি আসলেই একটি সমস্যা হওয়া উচিত নয়।
এরিক এ

1
@ এরিক-এ - আপনি নিশ্চিত হতে পারবেন না যে কোনও সঞ্চিত প্রক্রিয়া শুরু হয় BEGIN- এটি দুর্দান্ত তবে প্রয়োজনীয় নয়।
ম্যাক্স ভার্নন

উত্তর:


16

এসকিউএল সার্ভার কনফিগারেশনের যথাযথভাবে ডাকা একটি বিকল্প রয়েছে user optionsযা sp_configureসিস্টেম সঞ্চিত পদ্ধতি ব্যবহার করে সেট করা যায় । আমি এসকিউএল সার্ভার সায়েন্সে একটি ব্লগ পোস্ট লিখেছিলাম যাতে ব্যবহারকারীর বিকল্পগুলি কীভাবে পরীক্ষা করা যায় এবং সেট করা যায় showing

সংক্ষেপে, আপনি এটি ব্যবহার করে পুরানো সার্ভার থেকে "কনফিগার মান" পেতে পারেন:

EXEC sys.sp_configure 'user options';

তারপরে, এর মাধ্যমে একই বিকল্পগুলি ব্যবহার করতে নতুন সার্ভারটি সেট করুন:

EXEC sys.sp_configure 'user options', <config value>;
RECONFIGURE

(<কনফিগার মান> পুরানো সার্ভার থেকে মান সঙ্গে প্রতিস্থাপন)।


এটি প্রায় অবশ্যই কারণ (এখন নিশ্চিতকরণের অপেক্ষায়)। পুরানো সার্ভারটির মান ছিল 512 যা এমএস ( ডকস.মাইক্রোসফট.ইন.ইউস / এসকিএল / ডেটাবেস -ইনজিন / কনফিগার-উইন্ডোজ /… ) অনুসারে NOCOUNT । আমি এটির আগে দেখতে পাচ্ছিলাম না কারণ আমি কেবলমাত্র বিকল্প
অপশনগুলি

এটা অবশ্যই সঠিক। যদি SET NOCOUNT ONসমস্যাটি সমাধান হয় তবে ব্যবহারকারীর বিকল্পগুলি 512 এ সেট করা এটি ঠিক করবে।
ম্যাক্স ভার্নন
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.