मैं मेज है Tb
मैं SQL सर्वर पर किसी ट्रिगर में INSERT के मानों को कैसे संपादित कर सकता हूं?
ID | Name | Desc
-------------------------
1 | Sample | sample desc
मुझे लगता है कि उदाहरण के लिए डालने Desc
का मूल्य बदल जाएगा, सम्मिलित करें पर ट्रिगर बनाने के लिए चाहते हैं:
INSERT INTO Tb(Name, Desc) VALUES ('x', 'y')
ID | Name | Desc
-------------------------
1 | Sample | sample desc
2 | x | Y edited
में परिणाम होगा
ऊपर के उदाहरण मैं डालने Desc
का मूल्य हो गया अपरकेस और एक करने के लिए इसे बदल अंत में edited
dded।
मैं क्या जरूरत है, Desc
जाता है कि डाला जा रहा हो और इसे संशोधित है यही कारण है कि।
मैं यह कैसे कर सकता हूं?
यह एक अद्यतन के साथ डालने के बाद इसे संभाल करने के लिए बेहतर है? या INSTERAD के INSTEAD के साथ एक ट्रिगर करें और तालिका संरचना में हर बार इसे संशोधित करें?
क्या आप इसे अलग तरीके से नहीं कर सकते? मैं व्यक्तिगत रूप से नफरत करता हूं जब मुझे डेटा पर अजीब चीजें दिखाई देती हैं और मुझे अंत में एहसास होता है कि एक भूत ट्रिगर कुछ सामान कर रहा था –
मैं उस कोड से आने वाली किसी समस्या को ठीक करने के लिए इसका उपयोग करूंगा जो मेरे पास पहुंच नहीं है। यह किसी आइटम के 'यूआरएल' को सम्मिलित करता है, लेकिन यह उच्चारण और विशेष पात्रों को नहीं हटाता है, मैं एक ट्रिगर कर दूंगा जो मेरे लिए करता है। – BrunoLM
यह इतना कठिन अवधारणा नहीं है और यह मेरे दिमाग पर जोर देता है कि माइक्रोसॉफ्ट ऐसी सरल कार्यक्षमता प्रदान नहीं कर सकता है जैसे ओरेकल में जहां आप संपादन करके सम्मिलित करने से पहले किसी भी मूल्य को संशोधित कर सकते हैं: नए मान। यानी अगर मैं हमेशा उन्हें उपयोगकर्ता नाम डालने से पहले ऊपरी भाग में रखना चाहता हूं (मान लीजिए कि मैं इसे किसी कारण से कोड में नहीं कर सकता), तो आपके पास पहले से सम्मिलित ट्रिगर हो सकता है जो: NEW.username: = UPPER (: NEW.username)। SQL सर्वर में हालांकि, आप अंतर्निहित अस्थायी तालिका में मानों के बराबर नहीं कर सकते हैं, और वह वास्तव में बेकार है। – Jim