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

एक चर के रूप में एक तालिका का नाम

स्थिर प्रश्नों के लिए, जैसे आपके प्रश्न में, तालिका नाम और स्तंभ नाम स्थिर होने चाहिए।

गतिशील प्रश्नों के लिए, आपको गतिशील रूप से पूर्ण SQL उत्पन्न करना चाहिए, और इसे निष्पादित करने के लिए sp_executesql का उपयोग करना चाहिए।

यहां एक स्क्रिप्ट का उदाहरण दिया गया है जिसका उपयोग विभिन्न डेटाबेस की समान तालिकाओं के बीच डेटा की तुलना करने के लिए किया जाता है:

स्थिर क्वेरी:

SELECT * FROM [DB_ONE].[dbo].[ACTY]
EXCEPT
SELECT * FROM [DB_TWO].[dbo].[ACTY]

चूँकि मैं table का नाम आसानी से बदलना चाहता हूँ और schema , मैंने यह गतिशील क्वेरी बनाई है:

declare @schema varchar(50)
declare @table varchar(50)
declare @query nvarchar(500)

set @schema = 'dbo'
set @table = 'ACTY'

set @query = 'SELECT * FROM [DB_ONE].[' + @schema + '].[' + @table + '] EXCEPT SELECT * FROM [DB_TWO].[' + @schema + '].[' + @table + ']'

EXEC sp_executesql @query

चूंकि गतिशील प्रश्नों में कई विवरण होते हैं जिन पर विचार करने की आवश्यकता होती है और उन्हें बनाए रखना कठिन होता है, मैं अनुशंसा करता हूं कि आप पढ़ें:गतिशील एसक्यूएल का अभिशाप और आशीर्वाद



  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 सर्वर में अपरकेस अक्षरों वाली पंक्तियों को खोजने के 5 तरीके

  2. स्पॉटलाइट क्लाउड कैसे सेटअप करें और SQL सर्वर का कुशलतापूर्वक समस्या निवारण करें

  3. SQL सर्वर तालिका में मौजूदा कॉलम में डिफ़ॉल्ट बाधा कैसे जोड़ें - SQL सर्वर / TSQL ट्यूटोरियल भाग 91

  4. टी-एसक्यूएल का उपयोग करके उप-स्ट्रिंग की अंतिम घटना की अनुक्रमणिका पाएं

  5. तालिका मूल्यवान पैरामीटर के साथ पायथन कॉल एसक्यूएल-सर्वर संग्रहीत प्रक्रिया