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

SQL सर्वर अपडेट के लिए लूप के दौरान उपयोग करना

यह वास्तव में काम नहीं करेगा, क्योंकि आपके पास उद्धरणों में कॉलम नाम नहीं हो सकता है। आप जो अनिवार्य रूप से कर रहे हैं वह यह है कि SQL दो स्ट्रिंग्स की तुलना कर रहा है जो हमेशा भिन्न होंगे, जिसका अर्थ है कि आप कभी भी अपडेट नहीं करेंगे।

अगर आपको इसे इस तरह करना है, तो आपके पास कुछ ऐसा होना चाहिए...

DECLARE @a INT 
DECLARE @b VARCHAR 
SET @a = 1

WHILE @a < 30
BEGIN
set @b = @a  
exec sp_executesql N'UPDATE source set h = h + 'x_'[email protected] + N'
           where y_'[email protected] + N' = ''Sold'''   

SET @a = @a + 1
END

सामान्य तौर पर, हालांकि, मैं इस अभ्यास को हतोत्साहित करता हूं। मैं किसी भी प्रकार के उत्पादन कोड के लिए किसी अन्य SQL कथन के अंदर गतिशील SQL उत्पन्न होने का प्रशंसक नहीं हूं। एकबारगी विकास कार्यों को करने के लिए बहुत उपयोगी है, लेकिन मुझे यह कोड के लिए पसंद नहीं है जो एक उपयोगकर्ता द्वारा निष्पादित किया जा सकता है।



  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 सर्वर में किसी लिंक किए गए सर्वर के विरुद्ध SERVERPROPERTY() चलाएँ

  2. SQL सर्वर डेटाबेस में सभी पहचान कॉलम सूचीबद्ध करें:sys.identity_columns

  3. कोडनिर्देशक:SQL सर्वर से कनेक्शन कैसे सेटअप करें (2008)

  4. FORCEPLAN के साथ अपने T-SQL जॉइन के लिए क्वेरी ऑप्टिमाइज़र को ओवरराइड करें

  5. एसक्यूएल गिनती (*) प्रदर्शन