Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

SQL सर्वर में तालिका नाम का नाम कैसे बदलें

सबसे महत्वपूर्ण डेटाबेस व्यवस्थापक के कर्तव्यों में से एक डेटाबेस ऑब्जेक्ट्स का प्रबंधन करना है। उदाहरण के लिए, एप्लिकेशन तर्क बदलता है, और डीबीए को डेटाबेस ऑब्जेक्ट नाम बदलने की आवश्यकता हो सकती है। यह कार्य महत्वपूर्ण है क्योंकि हमें यह सुनिश्चित करना चाहिए कि नाम बदलने से आवेदन भंग नहीं होगा।

मुझे हाल ही में एक प्रोजेक्ट सौंपा गया है जहाँ मुझे कुछ तालिकाओं का नाम बदलना था। यहां, मैं समझाने जा रहा हूं कि SQL सर्वर तालिका का नाम कई तरीकों से कैसे बदला जाए।

हम निम्न का उपयोग करके तालिका का नाम बदल सकते हैं:

  1. एसक्यूएल सर्वर प्रबंधन स्टूडियो।
  2. sp_rename संग्रहीत प्रक्रिया।

साथ ही, मैं संभावित त्रुटियों को कवर करने जा रहा हूं जो तालिकाओं का नाम बदलने और आवश्यक सावधानियों के बाद हो सकती हैं। यह लेख डेमो-ओरिएंटेड है, इसलिए मैंने SQL सर्वर इंस्टेंस पर निम्नलिखित ऑब्जेक्ट बनाए हैं:

  1. डेटाबेस का नाम StudentDB . है
  2. दो टेबल नाम tblSchool और tblStudent
  3. tblSchool . के बीच एक विदेशी कुंजी और tblStudent . tblस्कूल एक पैरेंट टेबल है, और tblStudent चाइल्ड टेबल है।
  4. sp_getStudents named नामक एक संग्रहीत कार्यविधि
  5. 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’
  1. Schema_name.old_name उस तालिका का नाम है जिसे आप बदलना चाहते हैं।
  2. 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 नाम की तालिकाएँ नहीं ढूँढ सकती

तालिका का नाम बदलने के बाद ऐसी त्रुटियों से बचने के लिए, हमें उन डेटाबेस ऑब्जेक्ट्स की सूची की जाँच करनी चाहिए जो तालिकाओं पर निर्भर हैं।

तालिका का नाम बदलने की प्रक्रिया तालिका इस प्रकार होनी चाहिए:

  1. तालिका का नाम बदलें।
  2. संग्रहीत कार्यविधि, दृश्य, तदर्थ प्रश्नों और अन्य वस्तुओं में तालिका का नाम बदलें।

विशिष्ट तालिका पर निर्भर वस्तुओं की सूची खोजने के लिए, आप sp_depends चला सकते हैं संग्रहीत प्रक्रिया। वाक्य रचना है:

exec sp_depends [obj_name]

tblStudent . पर निर्भर वस्तुओं की सूची खोजने के लिए तालिका, निम्न क्वेरी चलाएँ:

use studentDB
go
exec sp_depends [vwStudents]

आउटपुट:

नोट: सुनिश्चित करें कि आप तालिका का नाम बदलने से पहले इस प्रक्रिया को चलाते हैं। अन्यथा, क्वेरी NULL को आउटपुट के रूप में वापस कर देगी।

सारांश

यह लेख बताता है कि हम sp_rename . का उपयोग कैसे कर सकते हैं संग्रहीत कार्यविधि और SQL सर्वर प्रबंधन स्टूडियो तालिका का नाम बदलने के लिए। इसके अलावा, हमने संभावित त्रुटियों को परिभाषित किया है जो तालिकाओं का नाम बदलने और तालिका के नाम बदलने के बाद बरती जाने वाली सावधानियों के बाद हो सकती हैं। SQL सर्वर में तालिकाओं के साथ बेहतर ढंग से निपटने के लिए, यह भी पढ़ें कि sql सर्वर में ड्रॉप टेबल स्टेटमेंट का उपयोग कैसे करें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर के साथ डर्टी रीड प्रॉब्लम को समझना

  2. SAP IQ को SQL सर्वर से कनेक्ट करें

  3. SQL सर्वर तालिका में कंप्यूटेड कॉलम कैसे जोड़ें - SQL सर्वर / T-SQL ट्यूटोरियल भाग 47

  4. आप SQL सर्वर तालिका की प्राथमिक कुंजी कैसे सूचीबद्ध करते हैं?

  5. NHibernate और SqlServer में डेटा ऑडिटिंग