Saya perlu memperbarui / mengganti data di datatable.column. Tabel tersebut memiliki bidang bernama Content
. Saya menggunakan REPLACE
fungsinya. Karena tipe data kolom adalah NTEXT
, SQL Server tidak mengizinkan saya untuk menggunakan REPLACE
fungsi tersebut.
Saya tidak dapat mengubah tipe data karena database ini adalah tabel perangkat lunak pihak ketiga. Mengubah tipe data akan menyebabkan aplikasi gagal.
UPDATE [CMS_DB_test].[dbo].[cms_HtmlText]
SET Content = REPLACE(Content,'ABC','DEF')
WHERE Content LIKE '%ABC%'
Saya menerima kesalahan ini:
Msg 8116, Level 16, Status 1, Baris 1 Tipe data argumen ntext tidak valid untuk argumen 1 dari fungsi pengganti.
- Bisakah saya memperbaikinya dengan T-SQL? Apakah seseorang memiliki contoh cara membaca dan mengulang?
- Karena ini adalah konversi satu kali, mungkin saya dapat mengubah ke jenis lain tetapi saya khawatir saya mengacaukan data.
Ada bidang kunci utama: nama: ID - bilangan bulat - ini adalah identitas .... Jadi saya perlu memikirkan ini juga. Mungkin mengatur Identitas ke N sementara.
Mohon saran tentang bagaimana mencapai fungsi REPLACE?
Approx. 3000 pernyataan perlu diperbarui dengan solusi baru.
sumber
Jawaban:
JIKA data Anda tidak melebihi 4000 karakter DAN Anda menggunakan SQL Server 2000 atau tingkat kompatibilitas 8 atau SQL Server 2000:
Untuk SQL Server 2005+:
sumber
NText
benar-benar diperlukan? Menurut saya, penugasanNVarchar(MAX)
keNText
akan otomatis mentransmisikannya.Dengan asumsi SQL Server 2000, pertanyaan StackOverflow berikut harus mengatasi masalah Anda.
Jika menggunakan SQL Server 2005/2008, Anda dapat menggunakan kode berikut (diambil dari sini ):
sumber