Ingin menambahkan pengalaman saya dengan mengonversi. Saya memiliki banyak text
bidang dalam kode Linq2SQL kuno. Ini untuk memungkinkan text
kolom yang ada dalam indeks untuk dibangun kembali ONLINE .
Pertama, saya sudah tahu tentang manfaat selama bertahun-tahun, tetapi selalu berasumsi bahwa konversi akan berarti beberapa pertanyaan panjang yang menakutkan di mana SQL Server harus membangun kembali tabel dan menyalin semuanya, menjatuhkan situs web saya dan meningkatkan detak jantung saya.
Saya juga khawatir bahwa Linq2SQL dapat menyebabkan kesalahan jika melakukan semacam verifikasi jenis kolom.
Senang melaporkan, bahwa perintah ALTER dikembalikan INSTAN - jadi mereka pasti hanya mengubah metadata tabel. Mungkin ada beberapa pekerjaan offline yang terjadi untuk mengembalikan <8000 data karakter ke dalam tabel, tetapi perintah ALTER instan.
Saya menjalankan yang berikut untuk menemukan semua kolom yang membutuhkan konversi:
SELECT concat('ALTER TABLE dbo.[', table_name, '] ALTER COLUMN [', column_name, '] VARCHAR(MAX)'), table_name, column_name
FROM information_schema.columns where data_type = 'TEXT' order by table_name, column_name
SELECT concat('ALTER TABLE dbo.[', table_name, '] ALTER COLUMN [', column_name, '] NVARCHAR(MAX)'), table_name, column_name
FROM information_schema.columns where data_type = 'NTEXT' order by table_name, column_name
Ini memberi saya daftar pertanyaan yang bagus, yang baru saja saya pilih dan salin ke jendela baru. Seperti saya katakan - menjalankan ini instan.
Linq2SQL cukup kuno - menggunakan desainer yang Anda tarik tabel. Situasinya mungkin lebih kompleks untuk Kode EF terlebih dahulu tetapi saya belum mengatasinya.