Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Cara Mengganti Nama Nama Tabel di SQL Server

Salah satu tugas administrator database yang paling penting adalah mengelola objek database. Misalnya, logika aplikasi berubah, dan DBA mungkin perlu mengubah nama objek database. Tugas ini sangat penting karena kita harus memastikan bahwa mengganti nama tidak akan merusak aplikasi.

Saya baru-baru ini diberi proyek di mana saya harus mengganti nama beberapa tabel. Di sini, saya akan menjelaskan cara mengganti nama tabel SQL Server dalam beberapa cara.

Kita dapat mengganti nama tabel menggunakan:

  1. Studio manajemen SQL Server.
  2. sp_rename prosedur tersimpan.

Juga, saya akan membahas potensi kesalahan yang dapat terjadi setelah mengganti nama tabel dan tindakan pencegahan yang diperlukan. Artikel ini berorientasi demo, jadi saya telah membuat objek berikut pada contoh SQL Server:

  1. Basis data bernama StudentDB .
  2. Dua tabel bernama tblSchool dan tblStudent .
  3. Kunci asing antara tblSchool dan tblStudent . tblSchool adalah tabel induk, dan tblStudent adalah tabel anak.
  4. Prosedur tersimpan bernama sp_getStudents .
  5. Tampilan bernama vwStudents .

Kode T-SQL yang diterapkan untuk membuat objek database di atas adalah sebagai berikut:

Buat basis data:

Create database [StudentDB]
Go

Membuat tabel dan kunci asing:

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

Diagram E-R tblSchool dan tblStudent:

Memasukkan data dummy ke dalam tabel:

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  

Buat prosedur tersimpan:

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

Buat tampilan:

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

Mengganti Nama Tabel Menggunakan Perintah sp_rename

Kita dapat menggunakan sp_rename prosedur tersimpan untuk mengganti nama objek apa pun dari database SQL Server (jangan bingung dengan mengubah tabel operator sql server yang mengubah data dalam tabel). Sintaksnya adalah sebagai berikut:

Exec sp_rename ‘schema_name.old_name’,’schema_name.new_name’
  1. Schema_name.old_name adalah nama tabel yang ingin Anda ubah.
  2. Schema_name.new_name adalah nama baru.

Sekarang, mari kita ganti nama tblStudent tabel untuk tbl_Students .

Use StudentDB
go
Exec sp_rename 'tblStudent','tbl_Students'
Go

Outputnya adalah:

Caution: Changing any part of an object name could break scripts and stored procedures.

Pesan tersebut menunjukkan bahwa nama tabel telah berhasil diubah.

Sekarang mari kita lihat bagaimana kita dapat mengubah nama tabel menggunakan SQL Server Management studio.

Cara Mengubah Nama Tabel di SQL Server Management Studio (SSMS)

Untuk mengganti nama tabel, buka SQL Server Management Studio> Sambungkan ke SQL Server instance> Perluas database> Perluas tabel> Klik kanan pada tblSchool> Ganti nama . Atau, cukup klik tblSchool.

Tentukan nama baru dan tekan Enter .

Setelah nama diubah, Anda dapat menjalankan kueri berikut untuk memverifikasi:

Seperti yang Anda lihat, nama tabel telah diubah. Perhatikan juga bahwa tanggal modifikasi tabel telah diperbarui, dan tanggal baru adalah stempel waktu saat tabel diubah .

Hal-hal yang Harus Diperhatikan Sebelum Mengubah Nama Tabel di MSSQL

Setelah mengubah nama tabel tblStudent dan tblSchool , mari kita jalankan prosedur tersimpan bernama sp_getstudent :

Use StudentDB
Go
Exec sp_getstudent
Go

Keluaran

Msg 208, Level 16, State 1, Procedure sp_getstudent, Line 4 [Batch Start Line 15]
Invalid object name 'tblStudent'.

Kesalahan menunjukkan bahwa objek yang digunakan dalam tampilan hilang.

Sekarang, mari kita jalankan kueri berikut untuk melihat data dari vwStudents :

Use StudentDB
Go
Select * from vwStudents
Go

Keluaran

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.

Kesalahan menunjukkan bahwa kueri yang digunakan untuk membuat tampilan tidak dapat menemukan tabel bernama tblStudent .

Untuk menghindari kesalahan seperti itu setelah mengubah nama tabel, kita harus memeriksa daftar objek database yang bergantung pada tabel.

Tabel proses penggantian nama tabel harus sebagai berikut:

  1. Ubah nama tabel.
  2. Ubah nama tabel dalam prosedur Tersimpan, tampilan, kueri Ad-Hoc, dan objek lainnya.

Untuk menemukan daftar objek dependen pada tabel tertentu, Anda dapat menjalankan sp_depends prosedur tersimpan. Sintaksnya adalah:

exec sp_depends [obj_name]

Untuk menemukan daftar objek yang bergantung pada tblStudent tabel, jalankan kueri berikut:

use studentDB
go
exec sp_depends [vwStudents]

Keluaran:

Catatan: Pastikan Anda menjalankan prosedur ini sebelum mengganti nama tabel. Jika tidak, kueri akan mengembalikan NULL sebagai output.

Ringkasan

Artikel ini menjelaskan bagaimana kita dapat menggunakan sp_rename prosedur tersimpan dan SQL Server Management Studio untuk mengubah nama tabel. Selain itu, kami telah menetapkan potensi kesalahan yang dapat terjadi setelah mengganti nama tabel dan tindakan pencegahan yang harus dilakukan setelah mengubah nama tabel. Untuk mengatasi tabel di SQL server dengan lebih baik, baca juga cara menggunakan pernyataan drop table di sql server.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mencegah Serangan Injeksi SQL dengan Aman

  2. Hanya mendapatkan Bulan dan Tahun dari SQL DATE

  3. Dapatkan baris di mana kolom datetime =hari ini - SQL server noob

  4. Bagaimana mencegah pembaruan ke tabel, dengan pengecualian untuk satu situasi

  5. Cara menghasilkan bidang kenaikan otomatis dalam kueri pemilihan