डेटा की तुलना तभी की जा सकती है जब आप जानते हों कि टेबल से कौन से रिकॉर्ड की तुलना की जानी चाहिए। तुलना करने वाले रिकॉर्ड की तुलना करने के लिए यह जानने के लिए तुलनाकर्ता पीके का उपयोग करता है। यदि आपकी तालिका में PK (या कम से कम एक अद्वितीय अनुक्रमणिका) नहीं है, तो वह तालिका सूची से गायब है।
आप इसे स्वयं एक पीके बनाकर हल कर सकते हैं (केवल तुलना के लिए)
संपादित करें
-
एक सहकर्मी को हाल ही में एक कठिन समय मिला है क्योंकि किसी ने तुलना परियोजना से कुछ तालिकाओं को स्पष्ट रूप से छोड़कर इसे गिट करने के लिए प्रतिबद्ध किया है। तो इसे जांचें कि क्या यह कोई नया प्रोजेक्ट नहीं है।
-
मुझे हाल ही में पीके के बिना तालिकाओं की तुलना करने का काम सौंपा गया था और पाया गया था 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
. इस तरह मैं इसे अछूता छोड़ सकता हूँ।