2010-04-28 11 views
5

यह देखते हुए कि SQL सर्वर किसी ट्रिगर में तार्किक रूप से निहित और हटाए गए तालिकाओं के संशोधन की अनुमति नहीं देता है, क्या एक एकल कॉलम के मान को बदलने का कोई आसान तरीका है और पूरे सम्मिलन कथन को फिर से लिखना नहीं है?डालने ट्रिगर्स के बजाय SQL सर्वर - क्या एक कॉलम को संशोधित करने का कोई आसान तरीका है?

उदाहरण के लिए, जिस तालिका में मैं ट्रिगर को लागू कर रहा हूं वह 20 कॉलम है। मैं एक कॉलम (प्रति पंक्ति) के लिए INSERTED तालिका से मान को संशोधित करना चाहता हूं और फिर उस पंक्ति को तालिका में सम्मिलित करना चाहता हूं। क्या मैं 1 9 कॉलम के साथ एक सम्मिलन कथन लिखने के बिना ऐसा कर सकता हूं और एक कॉलम जिसका मूल्य मैं संशोधित कर रहा हूं?

उत्तर

7

हां, बस "डालने के बाद" ट्रिगर के बजाय "डालने के बाद" ट्रिगर का उपयोग करें।

इस तरह से पंक्ति को पहले से ही तालिका में डाला जा चुका है, और आपको केवल प्राथमिक कुंजी फ़ील्ड पर अंतर्निहित तालिका में आंतरिक-जुड़ने के द्वारा एक (ध्यान से तैयार किया गया) अद्यतन कथन जारी करना है।

+0

है! धन्यवाद! – Matt

3

BradCs जवाब देने के लिए और अधिक विस्तार जोड़ने के लिए: एक में शामिल होने के साथ

वाक्य रचना एक अद्यतन के लिए एक छोटे से wonky

Update table 
    set columnA = inserted.columnA/10 
from table 
inner join inserted on table.id = inserted.id 
बेशक
संबंधित मुद्दे

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