Menampilkan dan Mengubah Properti Artikel

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Topik ini menjelaskan cara melihat dan memodifikasi properti artikel di SQL Server dengan menggunakan SQL Server Management Studio, Transact-SQL, atau Replication Management Objects (RMO).

Dalam Topik Ini

Sebelum Anda mulai

Batasan dan Pembatasan

  • Beberapa properti tidak dapat dimodifikasi setelah publikasi dibuat, dan properti lain tidak dapat dimodifikasi jika ada langganan untuk publikasi. Properti yang tidak dapat dimodifikasi ditampilkan sebagai baca-saja.

Rekomendasi

Menggunakan SQL Server Management Studio

Tampilkan dan ubah properti artikel dalam kotak dialog Properti Publikasi - <Publikasi> , yang tersedia di Microsoft SQL Server Management Studio dan Monitor Replikasi. Untuk informasi tentang memulai Monitor Replikasi, lihat Memulai Monitor Replikasi.

  • Halaman Umum menyertakan nama dan deskripsi publikasi, nama database, jenis publikasi, dan pengaturan kedaluwarsa langganan.

  • Halaman Artikel sesuai dengan halaman Artikel di Panduan Publikasi Baru. Gunakan halaman ini untuk menambahkan dan menghapus artikel, dan untuk mengubah properti dan pemfilteran kolom untuk artikel.

  • Halaman Filter Baris sesuai dengan halaman Filter Baris Tabel di Panduan Publikasi Baru. Gunakan halaman ini untuk menambahkan, mengedit, dan menghapus filter baris statis untuk semua jenis publikasi, dan untuk menambahkan, mengedit, dan menghapus filter baris berparameter dan menggabungkan filter untuk publikasi gabungan.

  • Halaman Rekam Jepret memungkinkan Anda menentukan format dan lokasi rekam jepret, apakah rekam jepret harus dikompresi, dan skrip untuk dijalankan sebelum dan sesudah rekam jepret diterapkan.

  • Halaman Rekam Jepret FTP (untuk rekam jepret dan publikasi transaksi, dan menggabungkan publikasi untuk Penerbit yang menjalankan versi sebelum SQL Server 2005) memungkinkan Anda menentukan apakah Pelanggan dapat mengunduh file rekam jepret melalui Protokol Transfer File (FTP).

  • Halaman Rekam Jepret dan Internet FTP (untuk menggabungkan publikasi dari Penerbit yang menjalankan SQL Server 2005 atau yang lebih baru) memungkinkan Anda menentukan apakah Pelanggan dapat mengunduh file rekam jepret melalui FTP, dan apakah Pelanggan dapat menyinkronkan langganan melalui HTTPS.

  • Halaman Opsi Langganan memungkinkan Anda mengatur sejumlah opsi yang berlaku untuk semua langganan. Opsi berbeda tergantung pada jenis publikasi.

  • Halaman Daftar Akses Publikasi memungkinkan Anda menentukan login dan grup mana yang dapat mengakses publikasi.

  • Halaman Keamanan Agen memungkinkan Anda mengakses pengaturan untuk akun tempat agen berikut menjalankan dan membuat koneksi ke komputer dalam topologi replikasi: Agen Rekam Jepret untuk semua publikasi; Agen Pembaca Log untuk semua publikasi transaksional; dan Agen Pembaca Antrean untuk publikasi transaksional yang memungkinkan pembaruan langganan antrean.

  • Halaman Partisi Data (untuk menggabungkan publikasi dari Penerbit yang menjalankan SQL Server 2005 atau yang lebih baru) memungkinkan Anda menentukan apakah Pelanggan ke publikasi dengan filter berparameter dapat meminta rekam jepret jika tidak tersedia. Ini juga memungkinkan Anda untuk menghasilkan rekam jepret untuk satu atau beberapa partisi, baik sekali atau pada jadwal berulang.

Untuk menampilkan dan mengubah properti artikel

  1. Pada halaman Artikel dari kotak dialog Properti Publikasi - <Publikasi>, pilih artikel, lalu klik Properti Artikel.

  2. Pilih artikel mana yang harus berlaku untuk perubahan properti:

    • Klik Atur Properti dari Artikel ObjectType> Yang Disorot <untuk meluncurkan kotak dialog Properti Artikel - <ObjectName>; perubahan properti yang dibuat dalam kotak dialog ini hanya diterapkan ke objek yang disorot di panel objek pada halaman Artikel.

    • Klik Atur Properti Dari Semua <Artikel ObjectType>, untuk meluncurkan kotak dialog Properti untuk Semua <Artikel ObjectType>; perubahan properti yang dibuat dalam kotak dialog ini diterapkan ke semua objek tipe tersebut di panel objek pada halaman Artikel, termasuk yang belum dipilih untuk publikasi.

      Catatan

      Perubahan properti yang dibuat dalam kotak dialog Properti untuk Semua <Artikel ObjectType> mengambil alih apa pun yang dibuat sebelumnya dalam kotak dialog Properti Artikel - <ObjectName>. Jika, misalnya, Anda ingin mengatur sejumlah default untuk semua artikel jenis objek, tetapi juga ingin mengatur beberapa properti untuk objek individual, atur default untuk semua artikel terlebih dahulu. Kemudian atur properti untuk objek individual.

  3. Ubah properti apa pun jika perlu, lalu klik OK.

  4. Klik OK pada kotak dialog Properti Publikasi - <Publikasi> .

Menggunakan T-SQL

Artikel dapat dimodifikasi dan propertinya dikembalikan secara terprogram menggunakan prosedur tersimpan replikasi. Prosedur tersimpan yang Anda gunakan bergantung pada jenis publikasi tempat artikel berada.

Untuk melihat properti artikel milik rekam jepret atau publikasi transaksi

  1. Jalankan sp_helparticle, menentukan nama publikasi untuk @publication parameter dan nama artikel untuk @article parameter . Jika Anda tidak menentukan @article, informasi akan dikembalikan untuk semua artikel dalam publikasi.

  2. Jalankan sp_helparticlecolumns untuk artikel tabel untuk mencantumkan semua kolom yang tersedia dalam tabel dasar.

Untuk mengubah properti artikel milik rekam jepret atau publikasi transaksi

  1. Jalankan sp_changearticle, menentukan properti artikel yang diubah dalam @property parameter dan nilai baru properti ini dalam @value parameter .

    Catatan

    Jika perubahan memerlukan pembuatan rekam jepret baru, Anda juga harus menentukan nilai 1 untuk @force_invalidate_snapshot, dan jika perubahan mengharuskan Pelanggan diinisialisasi ulang, Anda juga harus menentukan nilai 1 untuk @force_reinit_subscription. Untuk informasi selengkapnya tentang properti yang, saat diubah, memerlukan rekam jepret atau reinisialisasi baru, lihat Mengubah Publikasi dan Properti Artikel.

Untuk menampilkan properti artikel milik publikasi gabungan

  1. Jalankan sp_helpmergearticle, menentukan nama publikasi untuk @publication parameter dan nama artikel untuk @article parameter . Jika Anda tidak menentukan parameter ini, informasi akan dikembalikan untuk semua artikel dalam publikasi atau di penerbit.

  2. Jalankan sp_helpmergearticlecolumn untuk artikel tabel untuk mencantumkan semua kolom yang tersedia dalam tabel dasar.

Untuk mengubah properti artikel milik publikasi gabungan

  1. Jalankan sp_changemergearticle, menentukan properti artikel yang diubah dalam @property parameter dan nilai baru properti ini dalam @value parameter .

    Catatan

    Jika perubahan memerlukan pembuatan rekam jepret baru, Anda juga harus menentukan nilai 1 untuk @force_invalidate_snapshot, dan jika perubahan mengharuskan Pelanggan diinisialisasi ulang, Anda juga harus menentukan nilai 1 untuk @force_reinit_subscription. Untuk informasi selengkapnya tentang properti yang, saat diubah, memerlukan rekam jepret atau reinisialisasi baru, lihat Mengubah Publikasi dan Properti Artikel.

Contoh (Transact-SQL)

Contoh replikasi transaksional ini mengembalikan properti artikel yang diterbitkan.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksProductTran';

USE [AdventureWorks2022]
EXEC sp_helparticle
  @publication = @publication;
GO

Contoh replikasi transaksional ini mengubah opsi skema untuk artikel yang diterbitkan.

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @option AS int;
SET @publication = N'AdvWorksProductTran';
SET @article = N'Product';
SET @option = (SELECT CAST(0x0000000002030073 AS int));

-- Change the schema options to replicate schema with XML.
USE [AdventureWorks2022]
EXEC sp_changearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'schema_option', 
  @value = @option,
  @force_invalidate_snapshot = 1;
GO

Contoh replikasi penggabungan ini mengembalikan properti artikel yang diterbitkan.

DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';

USE [AdventureWorks2022]
EXEC sp_helpmergearticle
  @publication = @publication;
GO

Contoh replikasi penggabungan ini mengubah pengaturan deteksi konflik untuk artikel yang diterbitkan.

DECLARE @publication AS sysname;
DECLARE @article AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
SET @article = N'SalesOrderHeader';

-- Enable column-level conflict tracking.
-- Changing this property requires that existing subscriptions
-- be reinitialized and that a new snapshot be generated.
USE [AdventureWorks2022]
EXEC sp_changemergearticle 
  @publication = @publication,
  @article = @article, 
  @property = N'column_tracking', 
  @value = N'true',
  @force_invalidate_snapshot = 1,
  @force_reinit_subscription = 1;
GO

Menggunakan Objek Manajemen Replikasi (RMO)

Anda dapat mengubah artikel dan mengakses propertinya secara terprogram dengan menggunakan Objek Manajemen Replikasi (RMO). Kelas RMO yang Anda gunakan untuk melihat atau mengubah properti artikel bergantung pada jenis publikasi tempat artikel berada.

Untuk melihat atau mengubah properti artikel yang termasuk dalam rekam jepret atau publikasi transaksi

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas TransArticle.

  3. Atur Nameproperti , PublicationName, dan DatabaseName .

  4. Atur koneksi dari langkah 1 untuk ConnectionContext properti .

  5. LoadProperties Panggil metode untuk mendapatkan properti objek. Jika metode ini mengembalikan false, properti artikel di langkah 3 didefinisikan dengan tidak benar atau artikel tidak ada.

  6. (Opsional) Untuk mengubah properti, atur nilai baru untuk salah TransArticle satu properti yang dapat diatur.

  7. (Opsional) Jika Anda menentukan nilai true untuk CachePropertyChanges, panggil CommitPropertyChanges metode untuk menerapkan perubahan pada server. Jika Anda menentukan nilai false untuk CachePropertyChanges (default), perubahan akan segera dikirim ke server.

Untuk menampilkan atau mengubah properti artikel yang termasuk dalam publikasi gabungan

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas MergeArticle.

  3. Atur Nameproperti , PublicationName, dan DatabaseName .

  4. Atur koneksi dari langkah 1 untuk ConnectionContext properti .

  5. LoadProperties Panggil metode untuk mendapatkan properti objek. Jika metode ini mengembalikan false, properti artikel di langkah 3 didefinisikan dengan tidak benar atau artikel tidak ada.

  6. (Opsional) Untuk mengubah properti, atur nilai baru untuk salah MergeArticle satu properti yang dapat diatur.

  7. (Opsional) Jika Anda menentukan nilai true untuk CachePropertyChanges, panggil CommitPropertyChanges metode untuk menerapkan perubahan pada server. Jika Anda menentukan nilai false untuk CachePropertyChanges (default), perubahan akan segera dikirim ke server.

Contoh (RMO)

Contoh ini mengubah artikel penggabungan untuk menentukan penangan logika bisnis yang digunakan oleh artikel.

// Define the Publisher, publication, and article names.
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";
string articleName = "SalesOrderHeader";

// Set the friendly name of the business logic handler.
string customLogic = "OrderEntryLogic";

MergeArticle article = new MergeArticle();

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the article.
    article.ConnectionContext = conn;
    article.Name = articleName;
    article.DatabaseName = publicationDbName;
    article.PublicationName = publicationName;

    // Load the article properties.
    if (article.LoadProperties())
    {
        article.ArticleResolver = customLogic;
    }
    else
    {
        // Throw an exception of the article does not exist.
        throw new ApplicationException(String.Format(
        "{0} is not published in {1}", articleName, publicationName));
    }
    
}
catch (Exception ex)
{
    // Do error handling here and rollback the transaction.
    throw new ApplicationException(String.Format(
        "The business logic handler {0} could not be associated with " +
        " the {1} article.",customLogic,articleName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the Publisher, publication, and article names.
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2022"
Dim articleName As String = "SalesOrderHeader"

' Set the friendly name of the business logic handler.
Dim customLogic As String = "OrderEntryLogic"

Dim article As MergeArticle = New MergeArticle()

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the article.
    article.ConnectionContext = conn
    article.Name = articleName
    article.DatabaseName = publicationDbName
    article.PublicationName = publicationName

    ' Load the article properties.
    If article.LoadProperties() Then
        article.ArticleResolver = customLogic
    Else
        ' Throw an exception of the article does not exist.
        Throw New ApplicationException(String.Format( _
         "{0} is not published in {1}", articleName, publicationName))
    End If

Catch ex As Exception
    ' Do error handling here and rollback the transaction.
    Throw New ApplicationException(String.Format( _
     "The business logic handler {0} could not be associated with " + _
     " the {1} article.", customLogic, articleName), ex)
Finally
    conn.Disconnect()
End Try

Lihat Juga

Menerapkan Pengelola Logika Bisnis untuk Artikel Penggabungan
Menerbitkan Objek Data dan Database
Mengubah Properti Publikasi dan Artikel
Konsep Prosedur Tersimpan Sistem Replikasi
Deteksi dan Resolusi Konflik Replikasi Gabungan Tingkat Lanjut