Saya mencoba mengubah ukuran kolom di sql server menggunakan:
ALTER TABLE [dbo].[Address]
ALTER COLUMN [Addr1] [nvarchar](80) NULL
dimana panjang Addr1
awalnya 40
.
Gagal, meningkatkan kesalahan ini:
The object 'Address_e' is dependent on column 'Addr1'.
ALTER TABLE ALTER COLUMN Addr1 failed because one or more objects access
this column.
Saya sudah mencoba untuk membacanya dan tampaknya karena beberapa pandangan mereferensikan kolom ini dan tampaknya SQL Server benar-benar mencoba untuk menjatuhkan kolom yang menimbulkan kesalahan.
Address_e
adalah pandangan yang dibuat oleh Administrator DB sebelumnya.
Apakah ada cara lain untuk mengubah ukuran kolom?
sql
sql-server
Staelen
sumber
sumber
Jawaban:
Pandangan mungkin dibuat menggunakan opsi DENGAN PENYARINGAN dan ini berarti mereka secara eksplisit terhubung untuk mencegah perubahan tersebut. Sepertinya skemabinding berhasil dan mencegahmu dari melanggar pandangan itu, hari yang beruntung, heh? Hubungi administrator database Anda dan minta dia untuk melakukan perubahan, setelah itu menegaskan dampak pada database.
Dari MSDN :
sumber
sumber
Jika ada yang ingin "Meningkatkan lebar kolom dari tabel yang direplikasi" di SQL Server 2008, maka tidak perlu mengubah properti "
replicate_ddl=1
". Cukup ikuti langkah-langkah di bawah ini -ALTER TABLE [Table_Name] ALTER COLUMN [Column_Name] varchar(22)
varchar(x)
kevarchar(22)
dan perubahan yang sama dapat Anda lihat pada pelanggan (transaksi direplikasi). Jadi tidak perlu menginisialisasi ulang replikasiSemoga ini bisa membantu semua yang mencarinya.
sumber
Lihat tautan ini
Ubah Ukuran atau Ubah Kolom Tabel MS SQL Server dengan Batasan Default menggunakan Perintah T-SQL
solusi untuk masalah SQL Server akan menjadi
Menjatuhkan atau menonaktifkan DEFAULT Constraint pada kolom tabel.
Memodifikasi tipe data kolom tabel dan / atau ukuran data.
Menciptakan kembali atau mengaktifkan kembali kendala default pada kolom tabel sql.
Sampai jumpa
sumber
di sini adalah apa yang berfungsi dengan versi program yang saya gunakan: dapat bekerja untuk Anda juga.
Saya hanya akan menempatkan instruksi dan perintah yang melakukannya. kelas adalah nama tabel. Anda mengubahnya dalam tabel sendiri dengan metode ini. bukan hanya pengembalian pada proses pencarian.
lihat kelas tabel
ubah panjang kolom FacID (terlihat sebagai "faci") dan classnumber (dilihat sebagai "classnu") agar sesuai dengan seluruh label.
lihat tabel lagi untuk melihat perbedaannya
(jalankan perintah lagi untuk melihat perbedaannya)
Ini mengubah tabel aktual untuk selamanya, tetapi menjadi lebih baik.
PS Saya membuat instruksi ini sebagai catatan untuk perintah. Ini bukan ujian, tetapi bisa membantu satu :)
sumber
Periksa susunan kolom. Script ini mungkin mengubah susunan ke default tabel. Tambahkan susunan saat ini ke skrip.
sumber