এসকিউএল সার্ভারে বিদ্যমান ডাটাবেস স্ন্যাপশটের জন্য কীভাবে জিজ্ঞাসা করব?


12

আমি একটি টি-স্কোর কোয়েরি তৈরির চেষ্টা করছি যা কোনও নির্দিষ্ট ডাটাবেস থেকে তৈরি হওয়া কোনও ডাটাবেস স্ন্যাপশট রয়েছে কিনা তা নির্ধারণ করতে পারে।

উদাহরণস্বরূপ, যদি আমি এটির মতো একটি স্ন্যাপশট তৈরি করি:

CREATE DATABASE [DatabaseA_Snapshot] ON 
(NAME=DatabaseA, FileName='<whatever>') 
AS SNAPSHOT OF [DatabaseA]

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

এসকিউএল সার্ভার ম্যানেজমেন্ট স্টুডিওর অবজেক্ট এক্সপ্লোরার এটিকে 'ডাটাবেস স্ন্যাপশটস' ফোল্ডারের নীচে রাখে যাতে নিয়মিত ডাটাবেসগুলি থেকে এগুলি আলাদা করার স্পষ্টতই কিছু উপায় আছে।

উত্তর:


17

একটি স্ন্যাপশট ডাটাবেসের প্রবেশ থাকবে sys.databases.source_database_id, সুতরাং আপনি বর্তমান স্ন্যাপশটের জন্য যাচাই করতে নীচের মতো কিছু ব্যবহার করতে পারেন। একইভাবে, DROPনতুন তৈরি করার আগে আপনি বিদ্যমান স্ন্যাপশটে একই চেকটি ব্যবহার করতে পারেন ।

IF NOT EXISTS(
    SELECT 
        * 
    FROM 
        sys.databases 
    WHERE 
        name = 'DatabaseA_Snapshot' 
    AND source_database_id IS NOT NULL
    )
BEGIN
    CREATE DATABASE [DatabaseA_Snapshot] 
    ON (NAME=DatabaseA, FileName='<whatever>') 
    AS SNAPSHOT OF [DatabaseA]
END   
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.