এসকিউএল সার্ভার ২০০৮ আর 2-এ কোন সঞ্চিত পদ্ধতি বা ট্রিগার একটি সারণী ব্যবহার করছে তা আমি কীভাবে জানতে পারি?


9

এটি যে ক্ষেত্রে ডিবি আমি যাচাই করছি, সেখানে একটি সংরক্ষণাগার সারণী রয়েছে যা ব্যবহারকারীর ইতিহাস রাখে, এবং একটি ট্রিগার বা স্টোর প্রক্রিয়া রয়েছে যা কিছু সময়ের পরে এই টেবিলটি থেকে সারিগুলি মুছে ফেলবে যাতে এর আকারকে বাঁচাতে না পারে একই, আমি ডিবি ডিজাইন করিনি, আমি কেবল এই অ্যাপ্লিকেশনটির রক্ষণাবেক্ষণ করছি যা এই ডিবি ব্যবহার করে, তাই আমি এই সঞ্চিত পদ্ধতি বা ট্রিগারগুলির নাম জানি না, আমি কী করতে চাই তা এই সঞ্চিত পদ্ধতিটি সনাক্ত করতে হবে বা ট্রিগার করুন, কোডটি পরীক্ষা করুন এবং এটিকে "ব্যবহারকারীর ইতিহাস" টেবিলের উপরে আরও রেখে দিতে সংশোধন করুন।

কেউ আমাকে "সিসোবজেক্টস" টেবিলটি পরীক্ষা করতে বলেছিলেন, যেখানে আমি টেবিলের একই নামের সাথে আসলে কিছু দেখতে পাচ্ছি, তবে এই একমাত্র তথ্য যা আমি পুনরুদ্ধার করতে সক্ষম হয়েছি, কোনও পরামর্শ?

ধন্যবাদ.

উত্তর:


6

Sys.sql_modules ব্যবহার করে সমস্ত কোড সন্ধান করুন

SELECT OBJECT_NAME(object_id)
FROM sys.sql_modules sm
WHERE definition LIKE '%Mytable%'

অথবা রেড গেট এসকিউএল অনুসন্ধান ব্যবহার করুন যা সম্পূর্ণ বিনামূল্যে

সিসকমেন্টস বা তথ্য ব্যবহার করবেন না UB


সহকর্মীও কি লক্ষ্য টেবিলটিতে ডান ক্লিক করতে পারেন এবং "নির্ভরতা দেখান" (বা সেই প্রভাবটির কোনও পাঠ্য) টিপুন না?
নিক চ্যামাস

@ নিক চ্যামাস: নাহ, এটি অবিশ্বস্ত হিসাবে সুপরিচিত
gbn

@ জিবিএন, আমি বুঝতে পারি যে সিসকম্টগুলি পিছনের দিকের সামঞ্জস্যের জন্য এবং ভবিষ্যতের প্রকাশ থেকে অপসারণ করা যেতে পারে, তবে আপনি কেন তথ্য ব্যবহার করবেন না তা ব্যাখ্যা করতে পারেন? thx
ডাটাগোড

@ ডাটাগোড: একই কারণেই কমেন্টস যেমন বরাবরই বাঞ্ছনীয় পছন্দ: সংজ্ঞা কলামটি নব্যচার (৪০০০০)) এর অর্থ আপনি স্ট্রিং পজিশনে> 4000 বা এনভারচার (4000) সারিগুলির মধ্যে সীমানা বিস্তৃত করতে যদি কোনও টেবিলের রেফারেন্স মিস করতে পারেন (আপনি কীভাবে এটি পরিচালনা করেন তা নির্ভর করে) আমি মনে করতে পারি যে আপনি যদি সত্যিই চান ...
gbn

@gbn আসলে syscommentsএকটি অবজেক্টের জন্য একাধিক সারি রয়েছে যা 4000 অক্ষরের সীমা ছাড়িয়ে যায়, এটিকে ঠিক যেমনটি বৈধ হিসাবে ব্যবহার করে অনুসন্ধান করে sys.sql_modules। আমি এখনও সুপারিশ sys.sql_modulesতবে যেহেতু syscommentsঅবমূল্যায়ন ঘটেছে।
কেনেথ ফিশার 21

4

অ্যাপেক্সএসকিউএল অনুসন্ধান চেষ্টা করে দেখুন

অ্যাপেক্সএসকিউএল অনুসন্ধানটি একটি নিখরচায় এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিও এবং ভিজ্যুয়াল স্টুডিও অ্যাড-ইন যা অন্যান্য বৈশিষ্ট্যগুলির মধ্যে রয়েছে ভিউ নির্ভরতা বৈশিষ্ট্য। দেখুন নির্ভরতা বৈশিষ্ট্যটিতে এনক্রিপ্ট করা এবং সিস্টেম অবজেক্টস, এসকিউএল সার্ভার ২০১২ নির্দিষ্ট বস্তু এবং স্বচ্ছ ডেটা এনক্রিপশন (টিডিডি) সহ এনক্রিপ্ট হওয়া ডাটাবেসে সংরক্ষিত অবজেক্টের মধ্যে থাকা সমস্ত এসকিউএল ডাটাবেস অবজেক্টের সম্পর্ককে কল্পনা করার ক্ষমতা রয়েছে

নির্ভরতা দেখুন বৈশিষ্ট্যটি উপস্থাপিত হবে এমন সম্পর্কগুলি, উত্পন্ন চিত্রের বিন্যাস এবং আকার এবং নির্ভরতাগুলির ড্রিল-ডাউন গভীরতা সহ ভিজ্যুয়াল নির্ভরতা ডায়াগ্রাম লেআউট সেট আপ এবং কাস্টমাইজ করতে দেয়

দাবি অস্বীকার: আমি সাপোর্ট ইঞ্জিনিয়ার হিসাবে অ্যাপেক্সএসকিউএলের পক্ষে কাজ করি


2

ভবিষ্যতে 2008 সালের রেফারেন্সের জন্য একটি ডিএমভি রয়েছে যা ব্যবহার করা যেতে পারে। sys.dm_sql_referencing_entities। আমি সাধারণত এটি এসকিউএল_মডিউলগুলি ব্যবহার করতে পছন্দ করি কারণ এটি অন্যান্য জিনিসের মধ্যে মিথ্যা ধনাত্মকতা এড়িয়ে চলে। আমি এখানে এটি নিয়ে আলোচনা করেছি তবে মূলত যদি আপনার কাছে কোডের একটি অংশ থাকে:

SELECT OBJECT_SCHEMA_NAME(object_id), OBJECT_NAME(object_id) 
FROM sys.sql_modules WHERE [definition] LIKE '%ABC%'

আপনি টেবিল এ বি সি, ফলাফল টেবিলের ফলাফল শেষ করবেন vw_ABC দেখুন, সঞ্চিত পদ্ধতি sp_Update_ABC ইত্যাদি DM ।

একই ক্যোয়ারির ডিএমভি সংস্করণটি হ'ল:

SELECT * FROM sys.dm_sql_referencing_entities('dbo.ABC', 'OBJECT')

1

এছাড়াও আপনি sys.sql_expression_d dependferences ক্যাটালগ ভিউটি ব্যবহার করতে পারেন । এই প্রশ্নটি ব্যবহার করুন:

SELECT 
referencing_object_name = obj.name, 
referencing_object_type_desc = obj.type_desc, 
referenced_object_name = referenced_entity_name
FROM sys.sql_expression_dependencies sd 
INNER JOIN sys.objects obj 
ON sd.referencing_id = obj.[object_id] 
WHERE referenced_entity_name = 'MyTable'
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.