


Mendapatkan Medan Kemas Kini untuk Replikasi dalam SQL Server
Pengenalan
Apabila mereplikasi data antara pangkalan data SQL Server, adalah perlu untuk mengenal pasti medan yang telah diubah suai. Mekanisme lalai, COLUMNS_UPDATED, menyediakan perwakilan bitwise bagi medan yang dikemas kini. Walau bagaimanapun, artikel ini membentangkan pendekatan alternatif untuk mendapatkan semula coretan XML yang mengandungi hanya nilai lajur yang dikemas kini.
Fungsi Pencetus Kemas Kini Tersuai
Untuk mencapai ini, buat tersuai kemas kini fungsi pencetus seperti berikut:
CREATE TRIGGER DBCustomers_Insert ON DBCustomers AFTER UPDATE AS BEGIN DECLARE @sql as NVARCHAR(1024); SET @sql = 'SELECT '; WITH UpdatedColumns AS ( SELECT c.name AS ColumnName FROM sys.columns AS c JOIN inserted AS i ON c.object_id = i.object_id WHERE c.is_identity = 0 AND i.Original_value i.value ) SELECT @sql = @sql + ',' + ColumnName FROM UpdatedColumns SET @sql = $sql + ' FROM inserted FOR XML RAW'; DECLARE @x as XML; SET @x = CAST(EXEC(@sql) AS XML); .. use @x END
Penyelesaian Alternatif tanpa COLUMNS_UPDATED
Daripada COLUMNS_UPDATED, pendekatan yang berbeza melibatkan menyahpaut jadual yang dimasukkan dan dipadam, menyertainya dan menapis untuk sebarang perubahan:
CREATE TRIGGER TriggerName ON dbo.Sample_Table FOR DELETE, INSERT, UPDATE AS BEGIN SET NOCOUNT ON; WITH deleted_unpvt AS ( SELECT ContactID, FieldName, FieldValue FROM (SELECT ContactID , cast(Forename as sql_variant) Forename , cast(Surname as sql_variant) Surname , cast(Extn as sql_variant) Extn , cast(Email as sql_variant) Email , cast(Age as sql_variant) Age FROM deleted) p UNPIVOT (FieldValue FOR FieldName IN (Forename, Surname, Extn, Email, Age) ) AS deleted_unpvt ), inserted_unpvt AS ( SELECT ContactID, FieldName, FieldValue FROM (SELECT ContactID , cast(Forename as sql_variant) Forename , cast(Surname as sql_variant) Surname , cast(Extn as sql_variant) Extn , cast(Email as sql_variant) Email , cast(Age as sql_variant) Age FROM inserted) p UNPIVOT (FieldValue FOR FieldName IN (Forename, Surname, Extn, Email, Age) ) AS inserted_unpvt ) INSERT INTO Sample_Table_Changes (ContactID, FieldName, FieldValueWas, FieldValueIs) SELECT Coalesce (D.ContactID, I.ContactID) ContactID , Coalesce (D.FieldName, I.FieldName) FieldName , D.FieldValue as FieldValueWas , I.FieldValue AS FieldValueIs FROM deleted_unpvt d FULL OUTER JOIN inserted_unpvt i on D.ContactID = I.ContactID AND D.FieldName = I.FieldName WHERE D.FieldValue I.FieldValue --Changes OR (D.FieldValue IS NOT NULL AND I.FieldValue IS NULL) -- Deletions OR (D.FieldValue IS NULL AND I.FieldValue IS NOT NULL) -- Insertions END
Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Hanya Medan Yang Dikemas Kini Dengan Cekap dalam Replikasi Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Mysql'sblobissusuipableforstoringbinarydatawithinarelationaldatabase, sementara

Toaddauserinmysql, gunakan: createuser'username '@' host'identifiedby'password '; here'showtodoitsecurely: 1) choosethehostcareflelytocon trolaccess.2) SetResourcelImitSwithOptionsLikeMax_queries_per_hour.3) USESTRONG, UNIQUEPASSWORDS.4) Enforcessl/TLSConnectionswith

Toavoidcommonmistakeswithstringdatatypesinmysql, fahamistringtypenuances, choosetherighttype, danManageencodingandcollationsettingsefectively.1) usecharfarfixed-lengthstrings, varcharforvariable-length, andtext/blobforlargerdata.2)

Mysqloffersechar, varchar, teks, anddenumforstringdata.usecharforfixed-lengthstrings, varcharerforvariable-length, teks forlarger text, andenumforenforcingdataantegritywithaetofvalues.

Mengoptimumkan permintaan mysqlblob boleh dilakukan melalui strategi berikut: 1. Mengurangkan kekerapan pertanyaan gumpalan, gunakan permintaan bebas atau pemuatan kelewatan; 2. Pilih jenis gumpalan yang sesuai (seperti TinyBlob); 3. Pisahkan data gumpalan ke dalam jadual berasingan; 4. Mampat data gumpalan di lapisan aplikasi; 5. Indeks metadata gumpalan. Kaedah ini dapat meningkatkan prestasi dengan berkesan dengan menggabungkan pemantauan, caching dan data sharding dalam aplikasi sebenar.

Menguasai kaedah menambah pengguna MySQL adalah penting untuk pentadbir pangkalan data dan pemaju kerana ia memastikan keselamatan dan kawalan akses pangkalan data. 1) Buat pengguna baru menggunakan perintah CreateUser, 2) Berikan kebenaran melalui perintah geran, 3) Gunakan flushprivileges untuk memastikan kebenaran berkuatkuasa, 4) kerap mengaudit dan membersihkan akaun pengguna untuk mengekalkan prestasi dan keselamatan.

ChooseCHARforfixed-lengthdata,VARCHARforvariable-lengthdata,andTEXTforlargetextfields.1)CHARisefficientforconsistent-lengthdatalikecodes.2)VARCHARsuitsvariable-lengthdatalikenames,balancingflexibilityandperformance.3)TEXTisidealforlargetextslikeartic

Amalan terbaik untuk mengendalikan jenis data rentetan dan indeks dalam MySQL termasuk: 1) Memilih jenis rentetan yang sesuai, seperti char untuk panjang tetap, varchar untuk panjang berubah, dan teks untuk teks besar; 2) berhati-hati dalam pengindeksan, elakkan daripada mengindeks, dan buat indeks untuk pertanyaan umum; 3) Gunakan indeks awalan dan indeks teks penuh untuk mengoptimumkan carian rentetan panjang; 4) Secara kerap memantau dan mengoptimumkan indeks untuk memastikan indeks kecil dan cekap. Melalui kaedah ini, kita dapat mengimbangi membaca dan menulis prestasi dan meningkatkan kecekapan pangkalan data.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

mPDF
mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma
