Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL डेटा तुलना - कुछ तालिकाएँ अनुपलब्ध हैं

डेटा की तुलना तभी की जा सकती है जब आप जानते हों कि टेबल से कौन से रिकॉर्ड की तुलना की जानी चाहिए। तुलना करने वाले रिकॉर्ड की तुलना करने के लिए यह जानने के लिए तुलनाकर्ता पीके का उपयोग करता है। यदि आपकी तालिका में PK (या कम से कम एक अद्वितीय अनुक्रमणिका) नहीं है, तो वह तालिका सूची से गायब है।

आप इसे स्वयं एक पीके बनाकर हल कर सकते हैं (केवल तुलना के लिए)

संपादित करें

  1. एक सहकर्मी को हाल ही में एक कठिन समय मिला है क्योंकि किसी ने तुलना परियोजना से कुछ तालिकाओं को स्पष्ट रूप से छोड़कर इसे गिट करने के लिए प्रतिबद्ध किया है। तो इसे जांचें कि क्या यह कोई नया प्रोजेक्ट नहीं है।

  2. मुझे हाल ही में पीके के बिना तालिकाओं की तुलना करने का काम सौंपा गया था और पाया गया था HASHBYTES एक नया दोस्त बनने के लिए, तालिकाओं में अद्वितीय पंक्तियाँ भी नहीं हैं और इसे हल करने के लिए मैंने ROW_NUMBER विभाजन के साथ, नीचे स्निपेट देखें।

    SELECT Row_number() 
             OVER ( 
               partition BY [hashid] 
               ORDER BY [hashid]) AS RowNumber, 
           * 
    INTO   [dbo].[mytable_temp] 
    FROM   (SELECT Hashbytes('SHA2_512', (SELECT x.* 
                                          FOR xml raw)) AS [HASHID], 
                   * 
            FROM   [dbo].[mytable] AS x) AS y 

    go 

    ALTER TABLE [dbo].[mytable_temp] 
      ALTER COLUMN [hashid] VARBINARY(900) NOT NULL 

    ALTER TABLE [dbo].[mytable_temp] 
      ALTER COLUMN [rownumber] BIGINT NOT NULL 

    go 

    ALTER TABLE [dbo].[mytable_temp] 
      ADD CONSTRAINT pk_id PRIMARY KEY ([hashid], [rownumber]) 

    go 

इस तरह मैं पूरी पंक्ति सामग्री के साथ गणना किए गए हैश के आधार पर पीके बना सकता हूं।

अवलोकन:. नोट मैं MyTable_TEMP की तुलना कर रहा हूं और नहीं MyTable . इस तरह मैं इसे अछूता छोड़ सकता हूँ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सिंगल कॉलम कई कॉलम में विभाजित है

  2. सीएलआर:मल्टी परम एग्रीगेट, तर्क अंतिम आउटपुट में नहीं है?

  3. SQL सर्वर 2005 कैस्केडिंग हटाएं

  4. SQL सर्वर 2017:Linux पर उपलब्ध सुविधाएँ

  5. एक्सएमएल के नेस्टेड पदानुक्रम को एसक्यूएल टेबल में कैसे बदलें