इसलिए, यदि आप SQL सर्वर का उपयोग कर रहे हैं तो आप सभी तालिकाओं के सभी स्तंभों को खोजने के लिए इसे चला सकते हैं।
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
इस क्वेरी के आउटपुट का उपयोग करके आप प्रत्येक तालिका में प्रत्येक कॉलम के लिए SELECTS के सभी संभावित संयोजनों की एक सूची बनाते हैं।
यह सिर्फ सभी आदेशों की सूची को आउटपुट करता है, अब आपको उन्हें निष्पादित करना होगा। प्रत्येक कमांड को निष्पादित करने के लिए आपको एक कर्सर बनाना होगा जो परिणामों की पूरी सूची पर जाएगा।
आप पिछले SELECT
. को घेरने जा रहे हैं प्रत्येक क्वेरी पर जाने और इसे निष्पादित करने के लिए एक कर्सर के साथ कथन। इस प्रकार, कोड कुछ इस तरह बन जाता है
DECLARE @myCommand VARCHAR(1000)
DECLARE c CURSOR READ_ONLY FAST_FORWARD FOR
select
'SELECT * FROM '
+ st.name +
' WHERE ' +
sc.name + ' = ''MICROSOFT'' '
from sys.tables st join sys.columns sc on st.object_id = sc.object_id
OPEN c
FETCH NEXT FROM c INTO @myCommand
WHILE @@FETCH_STATUS = 0
BEGIN
sp_executesql @myCommand
FETCH NEXT FROM c INTO @myCommand
END
CLOSE c
DEALLOCATE c