Web design and hosting, database, cloud and social media solutions that deliver business results
  • व्यापारिक समाधान
    • सॉफ़्टवेयर
    • रोबोटिक प्रक्रिया स्वचालन
    • डेटाबेस परामर्श सेवाएं
      • डेटा एकीकरण
      • डाटावेयरहाउस सेवाएं
      • पावर बीआई
      • सर्वर अपग्रेड और डीबीए सेवाएं
    • वेब साइट डिजाइन
      • भुगतान द्वार
      • लोगो डिजाइन
      • वेब स्थानीयकरण और अनुवाद
      • वेब साइट अनुकूलन
      • वेबसाइट सुरक्षा
      • तकनीकी उपकरण
    • क्लाउड समाधान
      • अमेज़न वेब सेवाएँ
      • Google क्लाउड सेवाएं
      • माइक्रोसॉफ्ट ऐज़ुर
    • माइक्रोसॉफ्ट ऑफिस
    • सामाजिक मीडिया
  • अकादमी
    • हमारा परीक्षण वातावरण
    • डेटाबेस डिजाइन सीखना
      • मूल बातें
      • SQL सर्वर Pivot-Unpivot का उपयोग करना
      • SQL सर्वर डेटा
      • SQL सर्वर फ़ंक्शंस का उपयोग करना
      • एसक्यूएल सर्वर 2008 रखरखाव योजनाएँ
      • एसक्यूएल सर्वर तिथियों का उपयोग करना
      • ओपन क्वेरी प्राप्त करें
    • वेबसाइट डिजाइन सीखना
      • Ousia सामग्री प्रबंधन प्रणाली का निर्माण
      • ASP-NET
      • CSS
      • जावास्क्रिप्ट का उपयोग करना
    • क्लाउड और आईटी सेवाएं सीखना
      • टास्क शेड्यूलर त्रुटि 2147943645
      • एसएसएल का अनुरोध करना और ओपनएसएसएल सरल चरणों में पीएफएक्स फ़ाइल बनाना
    • सामाजिक मीडिया का उपयोग
      • Google समीक्षा के लिए पूछना
      • फेसबुक अकाउंट को पर्सनल से बिजनेस में बदलना
      • सोशल मीडिया छवि आकार
      • सोशल मीडिया छवियाँ सेट करने के लिए मेटा डेटा का उपयोग करना
      • सोशल मीडिया प्रयासों पर ध्यान केंद्रित करने का स्थान चुनना
  • हमारे बारे में
    • ब्लॉग
      • Google कोर अपडेट जनवरी 2020
      • अपनी वेबसाइट के लिए सामग्री का चुनाव कैसे करें विज्ञापन पत्रक
      • इंटरनेट पर वेबसाइटों के बारे में सबसे कष्टप्रद बातें
      • एक प्रवेश स्तर की गेमिंग मशीन का निर्माण
      • ऑनलाइन घोटाले को रोकना
      • गिग इकॉनमी के स्किमर्स
      • मुफ्त वेक्टर ग्राफिक्स के लिए शीर्ष 5 वेबसाइटें
      • गर्म मिर्च इंटरनेट बंद
    • करियर
      • अनुवादक अंग्रेज़ी-जापानी
      • अनुवादक अंग्रेज़ी-तुर्की
      • अनुवादक अंग्रेज़ी-पुर्तगाली
      • अनुवादक अंग्रेज़ी-स्पेनिश
    • टीम
      • अली अल अमीन
      • ऐसे हुरो
      • एड्रियन आनंदन
      • गेविन क्लेटन
      • चेस्टर कॉपरपॉट
      • सुनील कुमार
      • सूर्य मुक्कमल
      • साई गंगू
    • नियामक
    • पोर्टफोलियो
English (EN-GB)English (EN-US)Español (ES)हिंदी (HI)italiano (IT)日本語 (JA)

SQL सर्वर डेटा ऑडिटिंग के लिए संदर्भ ट्रिगर का उपयोग करना

SQL सर्वर 2008, आसान डेटा ऑडिटिंग - SQL तालिका में अपडेट ट्रेस करने के लिए ट्रिगर और संदर्भ का उपयोग करना

उद्देश्य

अपने डेटा का ऑडिट करना कभी-कभी एक बुरे सपने जैसा हो सकता है। मैंने हाल ही में एक स्वचालित डायलर के लिए एक डेटाबेस स्थापित किया है, इसे कई स्रोतों से अद्यतन करने की आवश्यकता है, जिसका अर्थ है कि त्रुटियों के मामले में यह देखना बहुत कठिन होगा कि किस प्रक्रिया ने परिवर्तन किया था।

मैंने हाल ही में एसक्यूएल में प्रक्रियाओं के बीच डेटा पास करने के तरीके के रूप में संदर्भ का उपयोग करने के बारे में पढ़ा था, और भाग्य के रूप में, ट्रिगर के साथ, इसकी आवश्यकता थी।

सबसे पहले हम दो टेबल बनाएंगे, एक हमारे इच्छित डेटा के साथ, फिर दूसरा समान कॉलम और एक पहचान कॉलम, दिनांक समय और प्रक्रिया नाम के साथ हमारे सभी परिवर्तनों को संग्रहीत करने के लिए।

SQL

CREATE TABLE Audit(AuditID INT IDENTITY(1,1) CONSTRAINT PK_AuditID PRIMARY KEY,AuditData NVARCHAR(100))CREATE TABLE AuditAudit(AuditAuditID INT IDENTITY(1,1) CONSTRAINT PK_AuditAuditID PRIMARY KEY,AuditAuditDateTime DATETIME DEFAULT GETDATE(),AuditAuditProcess NVARCHAR(128),AuditID INT,AuditData NVARCHAR(100))

क्या ये सहायक था?

आगे हम टेबल पर एक ट्रिगर बनाएंगे। हम इसे किसी भी इंसर्ट या अपडेट के बाद चलाना चाहते हैं। यह ट्रिगर तब ऑडिट ऑडिट तालिका में एक पंक्ति जोड़ देगा जो रिकॉर्ड करेगा कि नया डेटा क्या है, परिवर्तन की तारीख और समय और प्रक्रिया (यदि हमने इसे डाला है) या कनेक्शन आईडी। ट्रिगर्स पर अधिक MSDN पर पाया जा सकता है।

SQL

CREATE TRIGGER AuditUpdated ON Audit AFTER INSERT, UPDATE AS BEGINDECLARE @Cont VARCHAR(128) =(SELECT CAST(CONTEXT_INFO() as varchar(128)))--Retrieve Context InfoINSERT INTO AuditAudit(AuditAuditProcess,AuditID,AuditData)SELECT ISNULL(@Cont,CAST(@@Spid AS VARCHAR(20))),AuditID,AuditData FROM Inserted--Insert process id if there is not context addedENDGO

क्या ये सहायक था?

अब हम टेबल को अपडेट करने के लिए कुछ स्टेटमेंट दे सकते हैं। पहले हम एक सामान्य इंसर्ट करते हैं, फिर एक इंसर्ट और एक अपडेट जिसमें संदर्भ पॉप्युलेट होता है। 

SQL

--insert with no contextINSERT INTO Audit(AuditData)SELECT '1'--insert with contextGODECLARE @Context_Info varbinary(128)SELECT @Context_Info = CAST('Insert'+SPACE(128) AS VARBINARY(128))--Declare the name for the contextSET CONTEXT_INFO @Context_Info--Update Context info to aboveINSERT INTO Audit(AuditData)--Run your codeSELECT '2'--update with contextGODECLARE @Context_Info varbinary(128)SELECT @Context_Info = CAST('Update'+SPACE(128) AS VARBINARY(128))--Declare the name for the contextSET CONTEXT_INFO @Context_Info--Update Context info to aboveUPDATE Audit SET AuditData='3' WHERE AuditID=1--Run your code--Select Records from the audit tableGOSELECT * FROM AuditAudit

परिणाम

आपके चयन विवरण में नीचे के अनुसार तीन पंक्तियाँ होनी चाहिए।

AuditIDAuditDateTimeAuditProcessAuditIdAuditData
12013-01-29 18:21:23.0975111
22013-01-29 18:21:27.433Insert22
32013-01-29 18:21:30.710Update13

परिणाम

मैंने पाया कि इसका उपयोग करने का सबसे आसान तरीका संग्रहित प्रक्रियाओं में अद्वितीय प्रक्रिया नाम संलग्न करना था जो तालिकाओं को अद्यतन करते हैं, इस तरह आप ट्रैक कर सकते हैं कि डेटा परिवर्तन कहां से आया है।

लेखक

क्या ये सहायक था?

Please note, this commenting system is still in final testing.
Copyright Claytabase Ltd 2020

Registered in England and Wales 08985867

RSSLoginLink कूकी नीतिसाइटमैप

Social Media

facebook.com/Claytabaseinstagram.com/claytabase/twitter.com/Claytabaselinkedin.com/company/claytabase-ltd

Get in Touch

+442392064871info@claytabase.comClaytabase Ltd, Unit 3d, Rink Road Industrial Estate, PO33 2LT, United Kingdom
इस साइट की सेटिंग्स सभी कुकीज़ को अनुमति देने के लिए सेट हैं इन्हें हमारी कुकी नीति और सेटिंग पृष्ठ पर बदला जा सकता है। इस साइट का उपयोग जारी रखने के द्वारा आप कुकीज़ के उपयोग से सहमत हैं।
Ousia Logo
Logout
Ousia CMS Loader