मैं समझने की कोशिश कर रहा हूं कि एक हार्डकोडेड नाम का उपयोग किए बिना, उसी उदाहरण में किसी अन्य डेटाबेस का संदर्भ देने के लिए मैं उपनाम का उपयोग कैसे कर सकता हूं।एसक्यूएल सर्वर क्रॉस डेटाबेस उपनाम
परिदृश्य के रूप में नीचे है:
मैं डेटा को एक लेखा परीक्षा db जो किए गए सभी परिवर्तन रहता है के साथ एक डेटा db है। विभिन्न कारणों से, मैं ऑडिट डेटा को एक अलग डेटाबेस में रखना चाहता हूं, कम से कम नहीं क्योंकि यह काफी बड़ा हो सकता है और रिपोर्टिंग उद्देश्यों के लिए।
डेटा डीबी में, मैं इसे हार्डकोडेड नाम से संदर्भित नहीं करना चाहता लेकिन एक उपनाम ताकि विभिन्न वातावरण में, मुझे नए नाम का संदर्भ देने के लिए नाम और विभिन्न स्पैम को बदलने की आवश्यकता नहीं है।
उदाहरण के लिए:
mydevdata
mydevaudit
एक एसपी जैसे कौन से कॉल mydevaudit
mydevdata
में मौजूद है, मैं एसपी को बदलने के लिए जब मैं जहां डाटाबेस के कहा जा सकता है परीक्षण करने के लिए जाना नहीं चाहते mytestdata
और mytestaudit
। फिर, विभिन्न कारणों के लिए, डेटाबेस नाम, अधिक बदल सकते हैं एक उदाहरणों रिक्त स्थान के साथ क्या करना आदि
तो अगर मैं mydevdata
में प्रक्रिया थी:
proc A
begin
insert into mydevaudit.table.abc(somecol)
select 1
end
जब मैं परीक्षण करने के लिए जाना है, मुझे नहीं पता
proc A
begin
insert into AUDITEBALIAS.table.abc(somecol)
select 1
end
मैं: एक और नाम को संदर्भित करने की प्रक्रिया बदलने के लिए,
इसके बजाय मैं की तरह कुछ करने के लिए देख रहा हूँ (तर्क की खातिर कि क्या हुआ के लिए मान लेते हैं) बनना चाहता हूँ मुझे यह जानने में दिलचस्पी है कि मैं ऐसा कुछ कैसे कर सकता हूं, और समर्थक और विपक्ष।
इसके अलावा, डायनामिक एसक्यूएल एक विकल्प नहीं है।
आपकी मदद के लिए अग्रिम धन्यवाद।
कृपया आप विस्तारित कर सकते हैं कि क्यों "डाइनेमिक एसक्यूएल एक विकल्प नहीं है" – Seph