2012-12-09 16 views
6

एमएस एसक्यूएल सर्वर में, आप किसी भी आदिम प्रकार, या तालिका प्रकार के स्थानीय चर घोषित कर सकते हैं। यह तालिका एक सामान्य तालिका है जिसे आप SELECT, INSERT, UPDATE और DELETE पर किसी भी अन्य तालिका की तरह चला सकते हैं, सिवाय इसके कि यह एक स्थानीय चर है, डेटाबेस का हिस्सा नहीं है।क्या फायरबर्ड संग्रहीत प्रो के अंदर स्थानीय टेबल चर बनाने का कोई तरीका है?

मैं फ़ायरबर्ड में एक ही चीज़ करने की कोशिश कर रहा हूं, लेकिन यह वाक्यविन्यास पसंद नहीं करता है।

declare variable value int; --works fine 
declare variable values table (value int); --Error: "Token unknown (table)" 

क्या ऐसा करने का कोई तरीका है? (और इससे पहले कि किसी को भी कहते हैं, "एक चयन संग्रहीत प्रक्रिया का उपयोग करें," है कि काम नहीं करेगा। मैं कुछ मैं गतिशील पर INSERT और SELECT चला सकते हैं की जरूरत है।)

उत्तर

13

Firebird तालिका चर उसी तरह एसक्यूएल सर्वर करता है समर्थन नहीं करता।

पास बात है कि आप अपने निपटान में है Global Temporary Tables है (आवश्यक Firebird 2.1 या उच्चतर)

(v.2.1) वैश्विक अस्थायी तालिकाओं (GTTs) टेबल कि स्थायी मेटाडाटा के साथ प्रणाली सूची में जमा हो जाती हैं , लेकिन अस्थायी डेटा के साथ। विभिन्न कनेक्शनों (या दायरे के आधार पर लेनदेन) से डेटा एक-दूसरे से अलग होते हैं, लेकिन जीटीटी के मेटाडेटा को सभी कनेक्शन और लेनदेन के बीच साझा किया जाता है।

GTT दो प्रकार के होते हैं: डेटा है कि कनेक्शन के जीवनकाल में जो निर्दिष्ट GTT संदर्भित किया गया था के लिए बनी रहती है साथ

; और

डेटा के साथ जो केवल संदर्भ लेनदेन के जीवनकाल के लिए जारी रहता है।

आपको पहले जीटीटी बनाना होगा।

CREATE GLOBAL TEMPORARY TABLE 
    ... 
    [ON COMMIT <DELETE | PRESERVE> ROWS] 
संबंधित मुद्दे