सबसे महत्वपूर्ण डेटाबेस व्यवस्थापक के कर्तव्यों में से एक डेटाबेस ऑब्जेक्ट्स का प्रबंधन करना है। उदाहरण के लिए, एप्लिकेशन तर्क बदलता है, और डीबीए को डेटाबेस ऑब्जेक्ट नाम बदलने की आवश्यकता हो सकती है। यह कार्य महत्वपूर्ण है क्योंकि हमें यह सुनिश्चित करना चाहिए कि नाम बदलने से आवेदन भंग नहीं होगा।
मुझे हाल ही में एक प्रोजेक्ट सौंपा गया है जहाँ मुझे कुछ तालिकाओं का नाम बदलना था। यहां, मैं समझाने जा रहा हूं कि SQL सर्वर तालिका का नाम कई तरीकों से कैसे बदला जाए।
हम निम्न का उपयोग करके तालिका का नाम बदल सकते हैं:
- एसक्यूएल सर्वर प्रबंधन स्टूडियो।
- द sp_rename संग्रहीत प्रक्रिया।
साथ ही, मैं संभावित त्रुटियों को कवर करने जा रहा हूं जो तालिकाओं का नाम बदलने और आवश्यक सावधानियों के बाद हो सकती हैं। यह लेख डेमो-ओरिएंटेड है, इसलिए मैंने SQL सर्वर इंस्टेंस पर निम्नलिखित ऑब्जेक्ट बनाए हैं:
- डेटाबेस का नाम StudentDB . है ।
- दो टेबल नाम tblSchool और tblStudent ।
- tblSchool . के बीच एक विदेशी कुंजी और tblStudent . tblस्कूल एक पैरेंट टेबल है, और tblStudent चाइल्ड टेबल है।
- sp_getStudents named नामक एक संग्रहीत कार्यविधि ।
- vwStudents . नाम का एक दृश्य ।
उपरोक्त डेटाबेस ऑब्जेक्ट बनाने के लिए लागू किए गए T-SQL कोड इस प्रकार हैं:
डेटाबेस बनाएं:
Create database [StudentDB]
Go
टेबल और विदेशी कुंजियां बनाएं:
Use [StudentDB]
Go
CREATE TABLE [dbo].[tblSchool](
[School_ID] [int] IDENTITY(1,1) NOT NULL,
[School_Name] [varchar](500) NULL,
[City] [varchar](50) NULL,
CONSTRAINT [PK_tblSchool] PRIMARY KEY CLUSTERED
(
[School_ID] ASC
)
) ON [PRIMARY]
GO
CREATE TABLE [dbo].[tblStudent](
[ID] [int] IDENTITY(1,1) NOT NULL,
[student_name] [varchar](250) NOT NULL,
[student_code] [varchar](5) NOT NULL,
[student_grade] [char](2) NOT NULL,
[SchoolID] [int] NOT NULL,
CONSTRAINT [PK_tblStudent] PRIMARY KEY CLUSTERED
(
[ID] ASC
))
GO
ALTER TABLE [dbo].[tblStudent] WITH CHECK ADD CONSTRAINT [FK_tblStudent_tblSchool] FOREIGN KEY([SchoolID])
REFERENCES [dbo].[tblSchool] ([School_ID])
GO
ALTER TABLE [dbo].[tblStudent] CHECK CONSTRAINT [FK_tblStudent_tblSchool]
GO
tblSchool और tblStudent का E-R आरेख:
तालिका में डमी डेटा डालें:
INSERT INTO tblschool
(school_name,
city)
VALUES ('Nalanda School',
'Mehsana'),
('Sarvajanik School',
'Mehsana')
go
INSERT INTO tblstudent
(student_name,
student_code,
student_grade,
schoolid)
VALUES ('Nisarg Upadhyay',
'ST001',
'A ',
1),
('Dixit Upadhyay',
'ST002',
'A ',
1),
('Bharti Upadhyay',
'ST003',
'C',
2),
('Nimesh Patel',
'ST004',
'C',
2),
('Raghav Dave',
'ST005',
'A',
1)
go
संग्रहीत कार्यविधि बनाएं:
USE studentdb
go
CREATE PROCEDURE Sp_getstudent
AS
BEGIN
SELECT id,
student_code,
student_name,
student_grade,
school_name,
city
FROM tblstudent a
INNER JOIN tblschool b
ON a.schoolid = b.school_id
END
एक दृश्य बनाएं:
use StudentDB
go
create view vwStudents
as
select student_code [Student Code],
student_name [Student Name],
student_grade [Student Grade],
School_Name [School Name],
City [City]
from tblStudent a inner join tblSchool b on a.SchoolID=b.School_ID
sp_rename कमांड का उपयोग करके तालिका का नाम बदलें
हम sp_rename . का उपयोग कर सकते हैं SQL सर्वर डेटाबेस के किसी भी ऑब्जेक्ट का नाम बदलने के लिए संग्रहीत प्रक्रिया (तालिका में डेटा बदलने वाले तालिका sql सर्वर ऑपरेटर के साथ भ्रमित न हों)। वाक्य रचना इस प्रकार है:
Exec sp_rename ‘schema_name.old_name’,’schema_name.new_name’
- Schema_name.old_name उस तालिका का नाम है जिसे आप बदलना चाहते हैं।
- Schema_name.new_name नया नाम है।
अब, आइए tblStudent . का नाम बदलें tbl_Students . के लिए तालिका ।
Use StudentDB
go
Exec sp_rename 'tblStudent','tbl_Students'
Go
आउटपुट है:
Caution: Changing any part of an object name could break scripts and stored procedures.
संदेश इंगित करता है कि तालिका का नाम सफलतापूर्वक बदल दिया गया है।
अब देखते हैं कि हम SQL सर्वर प्रबंधन स्टूडियो का उपयोग करके तालिका का नाम कैसे बदल सकते हैं।
SQL सर्वर प्रबंधन स्टूडियो (SSMS) में तालिका का नाम कैसे बदलें
तालिका का नाम बदलने के लिए, SQL सर्वर प्रबंधन स्टूडियो खोलें> SQL सर्वर आवृत्ति से कनेक्ट करें> डेटाबेस का विस्तार करें> तालिका का विस्तार करें> tblSchool पर राइट-क्लिक करें> नाम बदलें . या, बस tblSchool पर क्लिक करें।
नया नाम निर्दिष्ट करें और Enter hit दबाएं ।
नाम बदलने के बाद, आप सत्यापित करने के लिए निम्न क्वेरी चला सकते हैं:
जैसा कि आप देख सकते हैं, तालिका का नाम बदल दिया गया है। यह भी ध्यान दें कि तालिका की संशोधित तिथि अपडेट कर दी गई है, और नई तिथि तालिका संशोधित होने पर टाइमस्टैम्प है ।
MSSQL में टेबल का नाम बदलने से पहले ध्यान रखने योग्य बातें
tblStudent . की तालिका के नाम बदलने के बाद और tblस्कूल , आइए हम sp_getstudent . नामक संग्रहीत कार्यविधि को चलाते हैं :
Use StudentDB
Go
Exec sp_getstudent
Go
आउटपुट
Msg 208, Level 16, State 1, Procedure sp_getstudent, Line 4 [Batch Start Line 15]
Invalid object name 'tblStudent'.
त्रुटि इंगित करती है कि दृश्य में प्रयुक्त वस्तु गायब है।
अब, vwStudents . के डेटा को देखने के लिए निम्न क्वेरी चलाएँ :
Use StudentDB
Go
Select * from vwStudents
Go
आउटपुट
Msg 208, Level 16, State 1, Procedure vwStudents, Line 8 [Batch Start Line 16]
Invalid object name 'tblStudent'.
Msg 4413, Level 16, State 1, Line 17
Could not use view or function 'vwStudents' because of binding errors.
त्रुटि इंगित करती है कि दृश्य बनाने के लिए उपयोग की जाने वाली क्वेरी tblStudent नाम की तालिकाएँ नहीं ढूँढ सकती ।
तालिका का नाम बदलने के बाद ऐसी त्रुटियों से बचने के लिए, हमें उन डेटाबेस ऑब्जेक्ट्स की सूची की जाँच करनी चाहिए जो तालिकाओं पर निर्भर हैं।
तालिका का नाम बदलने की प्रक्रिया तालिका इस प्रकार होनी चाहिए:
- तालिका का नाम बदलें।
- संग्रहीत कार्यविधि, दृश्य, तदर्थ प्रश्नों और अन्य वस्तुओं में तालिका का नाम बदलें।
विशिष्ट तालिका पर निर्भर वस्तुओं की सूची खोजने के लिए, आप sp_depends चला सकते हैं संग्रहीत प्रक्रिया। वाक्य रचना है:
exec sp_depends [obj_name]
tblStudent . पर निर्भर वस्तुओं की सूची खोजने के लिए तालिका, निम्न क्वेरी चलाएँ:
use studentDB
go
exec sp_depends [vwStudents]
आउटपुट:
नोट: सुनिश्चित करें कि आप तालिका का नाम बदलने से पहले इस प्रक्रिया को चलाते हैं। अन्यथा, क्वेरी NULL को आउटपुट के रूप में वापस कर देगी।
सारांश
यह लेख बताता है कि हम sp_rename . का उपयोग कैसे कर सकते हैं संग्रहीत कार्यविधि और SQL सर्वर प्रबंधन स्टूडियो तालिका का नाम बदलने के लिए। इसके अलावा, हमने संभावित त्रुटियों को परिभाषित किया है जो तालिकाओं का नाम बदलने और तालिका के नाम बदलने के बाद बरती जाने वाली सावधानियों के बाद हो सकती हैं। SQL सर्वर में तालिकाओं के साथ बेहतर ढंग से निपटने के लिए, यह भी पढ़ें कि sql सर्वर में ड्रॉप टेबल स्टेटमेंट का उपयोग कैसे करें।