2010-07-08 18 views

उत्तर

4

हाँ, बस के रूप में लंबे समय तक तालिका-मान समारोह एक मेज रिटर्न के रूप में इसके पूर्ण हो जाने।

उपयोगकर्ता परिभाषित कार्यों को घोंसला जा सकता है; , जो कि एक उपयोगकर्ता द्वारा परिभाषित फ़ंक्शन अन्य कॉल कर सकता है। घोंसले का स्तर बढ़ता है जब बुलाया गया फ़ंक्शन निष्पादन प्रारंभ होता है, और पर कम किया गया फ़ंक्शन निष्पादन समाप्त होता है। उपयोगकर्ता परिभाषित फ़ंक्शंस 32 स्तर तक घोंसला जा सकते हैं। से अधिक घोंसले के अधिकतम स्तर पूरे कॉलिंग फ़ंक्शन श्रृंखला विफल हो जाते हैं। एक ट्रांजैक्ट-एसक्यूएल उपयोगकर्ता परिभाषित फ़ंक्शन से प्रबंधित कोड का कोई संदर्भ 32-स्तर घोंसले की सीमा के विरुद्ध एक स्तर के रूप में गिना जाता है। प्रबंधित कोड के भीतर से लागू इस सीमा के विरुद्ध नहीं गिना जाता है।

http://msdn.microsoft.com/en-us/library/ms186755.aspx

यह बहुत साधारण है, लेकिन यह काम करता है:

--DROP FUNCTION RETURN_INT 
--GO 
CREATE FUNCTION RETURN_INT() 
    RETURNS INT 
WITH EXECUTE AS CALLER 
AS 
BEGIN 
    RETURN 1 
END 

GO 

--DROP FUNCTION RETURN_TABLE 
--GO 
CREATE FUNCTION RETURN_TABLE() 
    RETURNS @Test TABLE (
    ID INT 
) 
WITH EXECUTE AS CALLER 
AS 
BEGIN 

INSERT INTO @Test 
    SELECT DBO.RETURN_INT() 
RETURN 
END 
+0

आप किसी भी उदाहरण ... मेरी एक काम नहीं कर रहा मिला है ... धन्यवाद –

+0

आसानी से उपलब्ध नहीं है, लेकिन मैं कोशिश करूँगा और एक के साथ आऊंगा। – kemiller2002

+0

धन्यवाद केविन, इससे बहुत मदद मिलेगी –

संबंधित मुद्दे