मेरे पास एक और उप क्वेरी के अनुसार कई तालिकाओं को अपडेट करने का प्रयास है। वाक्य रचना क्या है?

मैंने कोशिश की:

;with sub_query as (....)
update T 
set X = Y 
from table1 T 
inner join sub_query on ...

update T 
set X = Y 
from table2 T 
inner join sub_query on ...

लेकिन मुझे अपडेट table2 क्वेरी में एक त्रुटि मिली:

अमान्य ऑब्जेक्ट नाम 'सब_क्वेरी'।

दूसरी क्वेरी को अपडेट करने के लिए सिंटैक्स क्या होना चाहिए? मैं sub_query फिर से लिखना नहीं चाहता क्योंकि यह एक बहुत ही जटिल प्रश्न है।

धन्यवाद!

-1
Nava 19 नवम्बर 2015, 13:18

2 जवाब

सबसे बढ़िया उत्तर

एक दृश्य का उपयोग करें:

CREATE VIEW view_sub_query .....

UPDATE T SET X=Y FROM table1 T INNER JOIN view_sub_query ON ...
UPDATE T SET X=Y FROM table2 T INNER JOIN view_sub_query ON ...

यदि आपको इसे कई स्थानों पर उपयोग करना है तो टेबल फ़ंक्शन का उपयोग करें:

CREATE FUNCTION fun_sub_query .....

UPDATE T SET X=Y FROM table1 T INNER JOIN fun_sub_query ON ...
UPDATE T SET X=Y FROM table2 T INNER JOIN fun_sub_query ON ...
-1
Simone 19 नवम्बर 2015, 11:42

CTE table इसे बनाने के बाद केवल एक बार उपयोग किया जाता है! आप इसके बजाय टेबल चर या अस्थायी तालिका का उपयोग कर सकते हैं। ऐशे ही:

CREATE @sub_query (...)
INSERT INTO sub_query ....

UPDATE ...
0
Nguyễn Hải Triều 19 नवम्बर 2015, 10:31