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

चर के लिए गतिशील एसक्यूएल का परिणाम असाइन करें

आप आउटपुट पैरामीटर के साथ sp_executesql का उपयोग कर सकते हैं।

declare @S nvarchar(max) = 'select @x = 1'

declare @xx int
set @xx = 0

exec sp_executesql @S, N'@x int out', @xx out

select @xx

परिणाम:

(No column name)
1

संपादित करें

मेरे नमूने में @S आपके @template . के बजाय है . जैसा कि आप देख सकते हैं कि मैं @x . के लिए एक मान निर्दिष्ट करता हूं इसलिए आपको @template . को संशोधित करने की आवश्यकता है इसलिए यह आंतरिक रूप से अल्पविराम से अलग की गई स्ट्रिंग को उस चर को निर्दिष्ट करता है जिसे आप अपने दूसरे तर्क में परिभाषित करते हैं sp_executesql . मेरे नमूने में N'@x int out' . आप शायद एक varchar(max) . चाहते हैं आउटपुट पैरामीटर। कुछ इस तरह N'@Result varchar(max) out'

मास्टर से अल्पविराम से अलग स्ट्रिंग बनाने का एक और उदाहरण यहां दिया गया है..spt_values

declare @template nvarchar(max)
set @template = 
'select @Result += cast(number as varchar(10))+'',''
from master..spt_values
where type = ''P''
'

declare @CommaString varchar(max)
set @CommaString = ''

exec sp_executesql @template, N'@Result varchar(max) out', @CommaString out

select @CommaString


  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 सर्वर (T-SQL) से HTML ईमेल कैसे भेजें

  2. SQL सर्वर सूची तालिकाएँ:सभी तालिकाएँ कैसे दिखाएं

  3. SQL सर्वर में विरल कॉलम:समय और स्थान पर प्रभाव

  4. समय के बीच डेटाबेस में एक साथ घटनाओं का पता लगाना

  5. SQL सर्वर 2016 में STRING_SPLIT ():फॉलो-अप #1