क्या निष्पादित प्रक्रिया से लौटाए गए मान को वैरिएबल पर असाइन करना संभव है?सेट @var = exec store_procedure
कुछ
तरहDECLARE @count int
SET @count = Execute dbo.usp_GetCount @Id=123
क्या निष्पादित प्रक्रिया से लौटाए गए मान को वैरिएबल पर असाइन करना संभव है?सेट @var = exec store_procedure
कुछ
तरहDECLARE @count int
SET @count = Execute dbo.usp_GetCount @Id=123
आप exec
के बजाय sp_executesql
उपयोग कर सकते हैं अदिश उत्पादन मानकों
DECLARE @out int
EXEC sp_executesql N'select @out_param=10',
N'@out_param int OUTPUT',
@[email protected] OUTPUT
SELECT @out
exec
के लिए करने के लिए आवंटित करने के लिए मैं कैसे एक मेज चर
declare @out table
(
out int
)
insert into @out
exec('select 10')
select *
from @out
संग्रहीत समर्थक के लिए cedures आप output
पैरामीटर या रिटर्न कोड का भी उपयोग करेंगे। उत्तरार्द्ध केवल एक पूर्णांक वापस कर सकता है और आम तौर पर डेटा के बजाय त्रुटि कोड लौटने के लिए प्राथमिकता देता है। दोनों तकनीकों का प्रदर्शन नीचे किया गया है।
create proC#foo
@out int output
as
set @out = 100
return 99
go
declare @out int, @return int
exec @return = #foo @out output
select @return as [@return], @out as [@out]
drop proC#foo
धन्यवाद। मैं अपने एसपी में ऐसा कुछ करना चाहता हूं; XMLNAMESPACES (DEFAULT 'http://abc.com') SET @out = (SELECT XmlResult.value ('count (// विषयों/विषय)', 'int') के साथ @XmlTable से) लेकिन मुझे वाक्यविन्यास त्रुटि मिलती है। यह मुझे पागल कर रहा है – BumbleBee
इसे स्केलर वैरिएबल को असाइन करने के लिए 'SELECT @out = XmlResult.value' का उपयोग करें। –
धन्यवाद। मुझे संदेश दिखाई देता है (1 पंक्तियां प्रभावित) लेकिन SELECt @out = xmlResult.Value के साथ नतीजे नहीं ... मैं परिणाम कैसे देख सकता हूं? – BumbleBee
आप proc में रिटर्न का उपयोग करते हैं
DECLARE @count int
EXECUTE @count = dbo.usp_GetCount @Id=123
आउटपुट पैरामीटर
DECLARE @count int
EXECUTE dbo.usp_GetCount @Id=123, @count OUTPUT
अस्थायी तालिका/मेज पर परिणाम चर
DECLARE @count int
DECLARE @cache TABLE (CountCol int NOT NULL)
INSERT @cache EXECUTE dbo.usp_GetCount @Id=123
SELECT @count = CountCol FROM @cache
पुन: निर्देशित
आप नहीं कर सकते हैं संग्रहीत प्रो से एक रिकॉर्डसेट असाइन करें सीधे एक अदिश चर
यह करने के लिए हमेशा की तरह के रूप में कई मायनों लेकिन सबसे आसान है करने के लिए:
DECLARE @count int
Execute @count = dbo.usp_GetCount @Id=123
हां यह काम करेगा लेकिन यदि आप गिनती मूल्य को कम नहीं करना चाहते हैं और बस इसका इस्तेमाल करें। यह काम नहीं करेगा। – Abe
Yopur सवाल 'के बारे में कार्यकारी @ sql' लेकिन उदाहरण पूछता है कि आप कॉल एक संग्रहीत proc दे। तुम्हे क्या चाहिए? –