हम अपने SQL सर्वर को बदलने की प्रक्रिया में हैं और यह तय किया है कि सर्वर का नाम बदलना खुद को नया नाम इंगित करने के लिए बाकी सब कुछ बदलने की तुलना में बहुत आसान होने जा रहा है। हमने कंप्यूटर के नाम से मेल खाने के लिए SQL सर्वर इंस्टेंस नाम को बदलने के निर्देश दिए जो इस तरह दिखते हैं:
sp_dropserver 'OLDSERVER'
sp_addserver 'NEWSERVER', local
हालांकि SQL एंटरप्राइज मैनेजर उन लोगों को एक साथ पसंद नहीं करता है। मुझे इसे एक साथ काम करने के लिए निम्न में बदलना पड़ा:
sp_dropserver 'OLDSERVER'; GO
sp_addserver 'NEWSERVER', 'local'; GO
जो बुरा नहीं है, लेकिन मैं चीजों को अधिक स्वचालित होना पसंद करूंगा। चूंकि @@ ServerName उदाहरण का नाम देता है, मुझे पता चला कि पहली पंक्ति को कैसे स्वचालित किया जाए:
sp_dropserver @@ServerName; GO
मैंने यह भी सीखा कि SERVERPROPERTY ('ServerName') को कंप्यूटर का नाम वापस करना है, इसलिए मैंने सोचा कि मैं शायद इसका उपयोग दूसरे भाग को स्वचालित करने के लिए करूं, लेकिन यह काम नहीं किया:
sp_addserver SERVERPROPERTY('ServerName'), 'local'; GO
मैंने एक चर सेट करने की कोशिश की, जिसे मुझे एसक्यूएल एजेंट नौकरियों को अपडेट करने के लिए वैसे भी करने की आवश्यकता है, लेकिन यह काम नहीं किया:
DECLARE @srv sysname;
SET @srv = CAST(SERVERPROPERTY('ServerName') AS sysname);
sp_addserver @srv, 'local'; GO
'Sp_addserver' के पास गलत सिंटैक्स।
मैं बहुत आसानी से स्क्रिप्ट में नए सर्वर नाम को हार्डकोड नहीं करना चाहूंगा, ताकि इसे और अधिक आसानी से पुन: प्रयोज्य बनाया जा सके। किसी को कोई विचार मिला?