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

टी-एसक्यूएल संग्रहीत प्रक्रिया के अंदर पैरामीटर नाम और वर्तमान मूल्यों को गतिशील रूप से पुनर्प्राप्त करें

मैं एक मानक कोड की तलाश कर रहा हूं जिसे मैं उस प्रक्रिया में चिपका सकूं जो खरीद के लिए सभी मापदंडों के माध्यम से लूप कर सके और वर्तमान मूल्यों को पुनः प्राप्त कर सके--

आप नीचे दी गई क्वेरी का उपयोग करके एसपी के लिए सभी मान पास करवा सकते हैं

उदाहरण:
मेरे पास नीचे संग्रहीत खरीद है जो मुझे बिक्री विवरण देता है (केवल डेमो के लिए)

alter  proc dbo.getsales
(
@salesid int
)
as
begin
select 
* from sales where [email protected]
end

मैंने अपने एसपी को नीचे की तरह कॉल किया है..

exec  dbo.getsales 4

अब अगर मैं वैल्यू पास करना चाहता हूं, तो मैं नीचे दी गई क्वेरी का उपयोग कर सकता हूं

select top 10* from sys.dm_exec_cached_plans cp
cross apply
sys.dm_exec_text_query_plan(cp.plan_handle,default,default)
where objtype='proc'

जिसने मुझे संकलन समय मूल्य के रूप में नीचे दिखाया:

इसके साथ ही, विचार करने के लिए कई चीजें हैं..हम इस मान को प्राप्त करने के लिए एक्सएमएल विधियों का उपयोग कर सकते हैं

अब क्या होता है, अगर मैं 2 के मूल्य के लिए फिर से वही संग्रहित खरीद चलाता हूं ..

<ColumnReference Column="@salesid" ParameterCompiledValue="(4)" ParameterRuntimeValue="(2)" />

यहां एक महत्वपूर्ण पकड़ है, उपरोक्त मान तब दिखाए जाते हैं जब मैंने ssms से दिखाने के लिए निष्पादन योजना का चयन किया था।

लेकिन कैशे में वैल्यू क्या होगी, इसे फिर से प्लान कैशे क्वेरी का उपयोग करके देखें

<ColumnReference Column="@salesid" ParameterCompiledValue="(4)"/>

यह अभी भी संकलित मूल्य दिखा रहा है, साथ ही 5-- के रूप में कॉलम का उपयोग करें - जिसका अर्थ है कि इस योजना का 5 बार उपयोग किया गया है और योजना शुरू में संकलित होने पर पारित किया गया पैरामीटर 4 है, जिसका अर्थ यह भी है, रन टाइम मान कैश में संग्रहीत नहीं हैं योजना विवरण..

तो संक्षेप में, आप संग्रहीत खरीद को रनटाइम मान पास कर सकते हैं

  • 1. स्टेटमेंट संकलित करते समय पास किए गए मान (
    आप समय के साथ इस जानकारी को इकट्ठा करना शुरू कर सकते हैं और उन्हें संग्रहीत खरीद के खिलाफ लॉग इन कर सकते हैं, मुझे लगता है कि सर्वर रीबूट के साथ समय के साथ, पुनर्संयोजन की योजना बनाएं आप नया सेट प्राप्त कर सकते हैं पैरामीटर मानों का)
  • 2. DEV टीम से संपर्क करना भी एक अच्छा तरीका है, क्योंकि वे आपको उन मापदंडों की कुल सूची दे सकते हैं जिन्हें पारित किया जा सकता है, यदि यह अभ्यास कठिन है


  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 NVARCHAR और VARCHAR सीमाएं

  2. SQL सर्वर प्रबंधन स्टूडियो (SSMS) में क्वेरी विंडो को कैसे विभाजित करें - SQL सर्वर / TSQL ट्यूटोरियल भाग 13

  3. Row_Number () के साथ डायनेमिक पिवट की आवश्यकता

  4. एसक्यूएल जुड़ता है:एसक्यूएल एएनएसआई मानक का भविष्य (जहां बनाम शामिल हों)?

  5. प्रोग्राम के रूप में SQL सर्वर CE डेटाबेस फ़ाइल बनाएँ