pengembangan-web-mp-pd.com

Ganti nama kolom SQL Server 2008

Saya menggunakan SQL Server 2008 dan Navicat. Saya perlu mengganti nama kolom dalam tabel menggunakan SQL.

ALTER TABLE table_name RENAME COLUMN old_name to new_name;

Pernyataan ini tidak berfungsi.

531
Serhio g. Lazin

Gunakan sp_rename

EXEC sp_RENAME 'TableName.OldColumnName' , 'NewColumnName', 'COLUMN'

Lihat: SQL SERVER - Cara Mengganti Nama Nama Kolom atau Nama Tabel

Dokumentasi: sp_rename (Transact-SQL)

Untuk kasus Anda adalah:

EXEC sp_RENAME 'table_name.old_name', 'new_name', 'COLUMN'

Ingatlah untuk menggunakan tanda kutip tunggal untuk melampirkan nilai Anda. 

999
Habib

Atau untuk SQL, Anda dapat melakukan ini di Microsoft SQL Server Management Studio. Berikut adalah beberapa cara cepat menggunakan GUI:

Jalan Pertama

Lambat klik dua kali pada kolom. Nama kolom akan menjadi kotak teks yang dapat diedit.


Jalan Kedua

Klik kanan pada kolom dan pilih Ubah nama dari menu konteks.

Sebagai contoh:

To Rename column name


Jalan Ketiga

Cara ini lebih disukai ketika Anda perlu mengganti nama beberapa kolom sekaligus.

  1. Klik kanan pada tabel yang berisi kolom yang perlu diganti namanya.
  2. Klik Desain.
  3. Di panel desain tabel, klik dan edit kotak teks dari nama kolom yang ingin Anda ubah.

Sebagai contoh:MSSMS Table Design Example

CATATAN: Saya tahu OP secara khusus meminta solusi SQL, pikir ini mungkin membantu orang lain :)

86
Carrie Kendall

Mencoba:

EXEC sp_rename 'TableName.OldName', 'NewName', 'COLUMN'
52
TechDo

Anda juga harus menentukan skema tabel atau Anda mungkin mendapatkan kesalahan ini:

Msg 15248, Level 11, Status 1, Prosedur sp_rename, Baris 238. parameter @objname ambigu atau yang diklaim @objtype (COLUMN) adalah salah.

Jika ini adalah skrip penerapan, saya juga akan merekomendasikan menambahkan beberapa keamanan tambahan untuk itu.

    if  exists (select 1 from sys.columns where name = 'OldColumnName' and object_name(object_id) = 'TableName') AND
not exists (select 1 from sys.columns where name = 'NewColumnName' and object_name(object_id) = 'TableName')
EXEC sp_RENAME 'SchemaName.TableName.OldColumnName', 'NewColumnName', 'COLUMN';
16
Taher

Ini akan menjadi saran yang bagus untuk menggunakan fungsi yang sudah ada di dalam tetapi cara lain adalah:

  1. Buat kolom baru dengan tipe data yang sama dan NAMA BARU. 
  2. Jalankan pernyataan UPDATE/INSERT untuk menyalin semua data ke kolom baru. 
  3. Jatuhkan kolom yang lama.

Manfaat di balik menggunakan sp_rename adalah bahwa ia menangani semua hubungan yang terkait dengannya.

Dari dokumentasi :

sp_rename secara otomatis mengganti nama indeks yang terkait kapan pun PRIMARY KEY atau kendala UNIQUE diganti namanya. Jika indeks yang diubah namanya dikaitkan dengan batasan PRIMARY KEY, batasan PRIMARY KEY juga secara otomatis diganti nama dengan sp_rename. sp_rename dapat digunakan untuk mengganti nama indeks XML primer dan sekunder.

15
NeverHopeless

Anda dapat menggunakan sp_rename untuk mengganti nama kolom.

USE YourDatabase;  
GO  
EXEC sp_rename 'TableName.OldColumnName', 'NewColumnName', 'COLUMN';  
GO  

Parameter pertama adalah objek yang akan dimodifikasi, parameter kedua adalah nama baru yang akan diberikan kepada objek, dan parameter ketiga KOLOM menginformasikan server bahwa nama diubah untuk column, dan juga digunakan untuk mengganti nama tables, index dan alias data type.

12

Karena saya sering datang ke sini dan kemudian bertanya-tanya bagaimana cara menggunakan kurung, jawaban ini mungkin berguna bagi mereka yang seperti saya.

EXEC sp_rename '[DB].[dbo].[Tablename].OldColumnName', 'NewColumnName', 'COLUMN'; 
  • OldColumnName tidak boleh dalam []. Itu tidak akan bekerja.
  • Jangan masukkan NewColumnName ke [], itu akan menghasilkan [[NewColumnName]].
9
HonzaB

Studio manajemen Sql Server memiliki beberapa prosedur tersimpan (SP) yang ditetapkan sistem
Salah satunya digunakan untuk mengganti nama kolom. SP adalah sp_rename 

Sintaks: sp_rename '[table_name] .old_column_name', 'new_column_name'
Untuk bantuan lebih lanjut lihat artikel ini: sp_rename oleh Microsoft Docs

Catatan: Pada pelaksanaan ini SP server sql akan memberi Anda pesan peringatan sebagai 'Perhatian: Mengubah bagian mana pun dari nama objek dapat merusak skrip dan prosedur tersimpan '. Ini hanya penting jika Anda telah menulis sp Anda sendiri yang melibatkan kolom pada tabel yang akan Anda ubah.

2
Tahir77667

Versi @Taher yang ditingkatkan

DECLARE @SchemaName AS VARCHAR(128)
DECLARE @TableName AS VARCHAR(128)
DECLARE @OldColumnName AS VARCHAR(128)
DECLARE @NewColumnName AS VARCHAR(128)
DECLARE @ParamValue AS VARCHAR(1000)

SET @SchemaName = 'dbo'
SET @TableName = 'tableName'
SET @OldColumnName = 'OldColumnName'
SET @NewColumnName = 'NewColumnName'
SET @ParamValue = @SchemaName + '.' + @TableName + '.' + @OldColumnName

IF EXISTS
(
    SELECT 1 FROM sys.columns WHERE name = @OldColumnName AND OBJECT_NAME(object_id) = @TableName
)
AND NOT EXISTS
(
    SELECT 1 FROM sys.columns WHERE name = @NewColumnName AND OBJECT_NAME(object_id) = @TableName
)
BEGIN
    EXEC sp_rename @ParamValue, @NewColumnName, 'COLUMN';
END
1
Rikin Patel

Atau Anda bisa memperlambat klik dua kali pada kolom di SQL Management Studio dan mengganti namanya melalui ...

0
Dave Cole