Aracılığıyla paylaş


Nasıl yapılır: Çoğaltma komut dosyaları (çoğaltma Transact-SQL programlama) yükseltme

Transact-SQL komut dosyalarını çoğaltma topolojisi programlı olarak yapılandırmak için kullanılır.Daha fazla bilgi için bkz: Yineleme sistem saklı yordamlar kavramları.Üye iseniz sysadmin sabit sunucu rolü SQL Server 2005 çoğaltma komut dosyaları oluşturulan gelen ve SQL Server 2000, komut dosyalarını olur yürütmek düzgün.Eğer üye iseniz db_owner sabit veritabanı rolü veya başka bir rolü, komut başarısız olur hatalı MSSQL_ENG021797 veya MSSQL_ENG021798 ve yükseltilmesi gerekir.

Güvenlik notuGüvenlik Notu

Üyeleri tarafından çalıştırılan komut dosyalarının yükseltmek zorunda değilsiniz, ancak sysadmin rolü, öneririz değiştirerek varolan komut dosyaları gibi anlatılan bu konuda."İzinleri gerekli tarafından aracıları," konusunda açıklandığı gibi her çoğaltma aracısı en düşük izni olan bir hesap belirtin bölümüne Çoğaltma aracısı güvenlik modeli.

Açıkça belirtmek vererek izinleri üzerinde daha fazla denetim etkinleştirmek bu güvenlik geliştirmeleri Microsoft Windows hesapları altında hangi çoğaltma aracısı işleri çalıştırılır, varolan komut dosyalarında aşağıdaki saklı yordamları etkiler:

  • sp_addpublication_snapshot:

    Şimdi Windows kimlik bilgileri olarak vermeniz gerekir @ job_login ve @ job_password yürütürken sp_addpublication_snapshot (Transact-sql) Anlık Görüntü Aracısı çalıştığı dağıtıcı iş oluşturmak için

  • sp_addpushsubscription_agent:

    Şimdi gereken yürütmek sp_addpushsubscription_agent (Transact-sql) açıkça bir iş ekleyin ve Windows kimlik bilgileri bilgilerini sağlamanız (@ job_login ve @ job_password) Dağıtım Aracısı işin dağıtımcı çalıştığı altında.Sürümlerinde SQL Server önce SQL Server 2005, bunun otomatik olarak ne zaman yapılmasının bir gönderme temelli abonelik oluşturuldu.

  • sp_addmergepushsubscription_agent:

    Şimdi gereken yürütmek sp_addmergepushsubscription_agent (Transact-sql) açıkça bir iş ekleyin ve Windows kimlik bilgileri bilgilerini sağlamanız (@ job_login ve @ job_password) dağıtımcı çalıştığı Birleştirme Aracısı iş altında.Sürümlerinde SQL Server önce SQL Server 2005, bunun otomatik olarak ne zaman yapılmasının bir gönderme temelli abonelik oluşturuldu.

  • sp_addpullsubscription_agent:

    Şimdi Windows kimlik bilgileri olarak vermeniz gerekir @iş_login ve @iş_password yürütürken sp_addpullsubscription_agent (Transact-sql) oluşturmak için iş abone. dağıtım aracı çalıştığı altında

  • sp_addmergepullsubscription_agent:

    Şimdi Windows kimlik bilgileri olarak vermeniz gerekir @iş_login ve @iş_password yürütürken sp_addmergepullsubscription_agent (Transact-sql) oluşturmak için iş altında Birleştirme Aracısı abone. çalıştığı

  • sp_addlogreader_agent:

    Şimdi gereken yürütmek sp_addlogreader_agent (Transact-sql) el ile ekleme iş ve Günlük Okuyucu Aracısı çalıştığı at Windows kimlik bilgileri bilgilerini sağlayındağıtımcı. Sürümlerinde SQL Server önce SQL Server 2005, işlem bir yayın oluşturduğunuzda bu otomatik olarak yapılmasının.

  • sp_addqreader_agent:

    Şimdi yürütmelidir sp_addqreader_agent (Transact-sql) el ile eklemek için iş ve Queue Reader Agent çalıştığı dağıtıcı. Windows kimlik bilgileri bilgilerini sağlamanızSürümlerinde SQL Server önce SQL Server 2005, kuyruğa alınmış güncelleştirme işlemsel yayın oluşturduğunuzda bu otomatik olarak yapılmasının.

Güvenlik modelinde kullanılmaya başlandı SQL Server 2005, çoğaltma aracıları için yerel her zaman bağlantılar yapmak örnek , SQL Server sağlanan kimlik bilgileri bilgilerini kullanarak Windows kimlik bilgileri doğrulaması ile @ job_name ve @ job_password.Çoğaltma aracısı işleri çalışırken kullanılan Windows hesap gereksinimleri hakkında daha fazla bilgi için bkz: Çoğaltma aracısı güvenlik modeli.

Güvenlik notuGüvenlik Notu

Mümkün olduğunda, zamanında güvenlik kimlik bilgileri bilgilerini girmesini ister.Kimlik bilgileri bir komut dosyasında saklıyorsanız, dosyanın güvenli hale getirildiğinden emin olun.

Anlık görüntü veya işlem komut dosyaları yükseltmek içinyayın

  1. Varolan komut dosyası'nda önce sp_addpublication (Transact-sql), yürütmek sp_addlogreader_agent (Transact-sql) adresindeki Yayımcı yayın veritabanı.Günlük Okuyucu Aracısı çalıştığı için Windows kimlik bilgileri belirtmek @ job_name ve @ job_password.Aracı kullanırsanız SQL Server Yayımcı bağlanırken kimlik doğrulama değeri de belirtmeniz gerekir 0 için @ publisher_security_mode ve SQL Server için oturum açma bilgilerini @ publisher_login ve publisher_password @.Bu bir Günlük Okuyucu Aracısı iş yayın veritabanı için oluşturur.

    Not

    Bu adım yalnızca işlem yayınlar için ve anlık görüntü yayınlar için gerekli değildir.

  2. (İsteğe bağlı) Önce sp_addpublication (Transact-sql), yürütmek sp_addqreader_agent (Transact-sql) at dağıtımcı dağıtım veritabanı.Queue Reader Agent çalıştığı için Windows kimlik bilgileri belirtmek @ job_name ve @ job_password.Queue Reader Agent oluşturur bu iş dağıtıcı.

    Not

    Bu yalnızca adımdır kuyruklanmış güncelleme aboneleri desteklemek işlemsel yayımlar için gereklidir.

  3. (İsteğe bağlı) Yürütülmesini güncelleştirmek sp_addpublication (Transact-sql) için küme uygulayan yeni çoğaltma işlevlerini. Parametreler için varsayılan olmayan değerleri

  4. Sonra sp_addpublication (Transact-sql), yürütmek sp_addpublication_snapshot (Transact-sql) adresindeki Yayımcı yayın veritabanı.Belirtmek @ yayın ve anlık görüntü Aracısı çalıştığı için Windows kimlik bilgileri bilgilerini @ job_name ve @ job_password.Aracı kullanırsanız SQL Server Yayımcı bağlanırken kimlik doğrulama değeri de belirtmeniz gerekir 0 için @ publisher_security_mode ve SQL Server için oturum açma bilgilerini @ publisher_login ve publisher_password @.Bu bir anlık görüntü Aracısı iş yayın için oluşturur.

  5. (İsteğe bağlı) Yürütülmesini güncelleştirmek sp_addarticle (Transact-sql) için küme uygulayan yeni çoğaltma işlevlerini. Parametreler için varsayılan olmayan değerleri

Bir anlık görüntü ya da işlemsel Abonelik Ekle kodları yükseltmek içinyayın

Bir birleştirme yayın yapılandırma komut dosyaları yükseltmek için

  1. (İsteğe bağlı) Varolan komut dosyası yürütülmesine güncelleştirmek sp_addmergepublication (Transact-sql) için küme uygulayan yeni çoğaltma işlevlerini. Parametreler için varsayılan olmayan değerleri

  2. Sonra sp_addmergepublication (Transact-sql), yürütmek sp_addpublication_snapshot (Transact-sql) adresindeki Yayımcı yayın veritabanı.Belirtmek @ yayın ve anlık görüntü Aracısı çalıştığı için Windows kimlik bilgileri bilgilerini @ job_name ve @ job_password.Aracı kullanırsanız SQL Server Yayımcı bağlanırken kimlik doğrulama değeri de belirtmeniz gerekir 0 için @ publisher_security_mode ve SQL Server için oturum açma bilgilerini @ publisher_login ve publisher_password @.Bu bir anlık görüntü Aracısı iş yayın için oluşturur.

  3. (İsteğe bağlı) Yürütülmesini güncelleştirmek sp_addmergearticle (Transact-sql) için küme uygulayan yeni çoğaltma işlevlerini. Parametreler için varsayılan olmayan değerleri

Abonelik için birleştirme ekleme komut dosyaları yükseltmek içinyayın

Örnek

Aşağıdaki örnek olarak verilebilir bir SQL Server 2000 için işlemsel yayın oluşturur komut dosyasıürün tablo. Bu yayın hemen yerine çalışma olarak kuyruğa alınmış güncelleştirme ile güncelleştirmek destekler.Varsayılan parametreler, okunabilirlik için kaldırılmış.

USE [Northwind]
GO

DECLARE @publication AS sysname
DECLARE @publicationDB AS sysname
DECLARE @article AS sysname
SET @publication = N'NwdProductTran'
SET @publicationDB = N'Northwind'
SET @article = N'Products'

-- Enable the replication database.
EXEC sp_replicationdboption 
    @dbname = @publicationDB, 
    @optname = N'publish', 
    @value = N'true'

-- Add the transactional publication.
EXEC sp_addpublication 
    @publication = @publication, 
    @sync_method = N'native', 
    @status = N'active', 
    @repl_freq = N'continuous', 
    @description = N'Transactional publication of Northwind.', 
    @allow_push = N'true', 
    @allow_pull = N'true', 
    @allow_sync_tran = N'true', 
    @autogen_sync_procs = N'true', 
    @allow_queued_tran = N'true'

-- Add a snapshot job.
EXEC sp_addpublication_snapshot 
    @publication = @publication

-- Add the transactional articles.
EXEC sp_addarticle 
    @publication = @publication, 
    @article = @article, 
    @source_owner = N'dbo', 
    @source_object = @article, 
    @destination_table = @article, 
    @type = N'logbased', 
    @schema_option = 0x00000000000080F3, 
    @ins_cmd = N'CALL sp_MSins_Products', 
    @del_cmd = N'XCALL sp_MSdel_Products', 
    @upd_cmd = N'XCALL sp_MSupd_Products', 
    @auto_identity_range = N'false'
GO

Aşağıdaki yükseltme için başarılı bir şekilde çalıştırmak için bir işlem yayın oluşturur önceki komut dosyası örneğidir SQL Server 2005 ve sonraki sürümleri.Bu yayın hemen yerine çalışma olarak kuyruğa alınmış güncelleştirme ile güncelleştirmek destekler.Yeni parametrelerin varsayılan değerleri açıkça bildirilmiş olması.

Not

Windows kimlik bilgileri bilgilerini kullanarak çalışma zamanı sırasında sağlanacak olan sqlcmd değişkenleri komut dosyası kullanan kullanan kullanan dosyası.

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

-- Execute at the Distributor.
USE [distribution]

DECLARE @login AS sysname;
DECLARE @password AS sysname;
-- Specify the Windows account to run the Queue Reader Agent.
SET @login = $(Login); 
-- Pass the password at runtime.
SET @password = $(Password); 

-- Execute sp_addqreader_agent to create the Queue Reader Agent job. 
EXEC sp_addqreader_agent 
    @job_login = @login, 
    @job_password = @password;
GO

-- Execute at the Publisher.
USE [Northwind]
GO

DECLARE @publication AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @article AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdProductTran';
SET @publicationDB = N'Northwind';
SET @article = N'Products';
-- Specify the Windows account to run the Log Reader and Snapshot Agents.
SET @login = $(Login); 
-- Pass the password at runtime.
SET @password = $(Password); 

-- Enable the replication database.
EXEC sp_replicationdboption 
    @dbname = @publicationDB, 
    @optname = N'publish', 
    @value = N'true';

-- Execute sp_addlogreader_agent to create the agent job. 
EXEC sp_addlogreader_agent 
    @job_login = @login, 
    @job_password = @password, 
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Add the transactional publication.
EXEC sp_addpublication 
    @publication = @publication, 
    @sync_method = N'native', 
    @repl_freq = N'continuous', 
    @status = N'active',
    @description = N'Transactional publication of Northwind.', 
    @allow_push = N'true', 
    @allow_pull = N'true', 
    @allow_sync_tran = N'true', 
    @autogen_sync_procs = N'true', 
    @allow_queued_tran = N'true',
    @replicate_ddl = 1,
    @enabled_for_p2p = N'false';

-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login, 
    @job_password = @password,
    -- Explicitly specify the use of Windows Integrated Authentication (default) 
    -- when connecting to the Publisher.
    @publisher_security_mode = 1;

-- Add a transactional article.
EXEC sp_addarticle 
  @publication = @publication, 
  @article = @article, 
  @source_owner = N'dbo', 
  @source_object = @article, 
  @destination_table = @article, 
  @type = N'logbased', 
  @schema_option = 0x00000000000080F3, 
  @ins_cmd = N'CALL sp_MSins_Products', 
  @del_cmd = N'XCALL sp_MSdel_Products', 
  @upd_cmd = N'XCALL sp_MSupd_Products', 
  @auto_identity_range = N'false',
  @identityrangemanagementoption = N'manual',
  @fire_triggers_on_snapshot = N'false';
GO

Aşağıdaki örnek olarak verilebilir bir SQL Server 2000 Müşteriler için birleştirme yayın oluşturur komut dosyası tablo.Varsayılan parametreler, okunabilirlik için kaldırılmış.

-- Enable the replication database.
USE [Northwind]
GO

DECLARE @publicationDB AS sysname
DECLARE @publication AS sysname
DECLARE @article AS sysname
SET @publicationDB = N'Northwind' 
SET @publication = N'NwdCustomersMerge' 
SET @article = N'Customers' 

EXEC sp_replicationdboption 
    @dbname = @publicationDB, 
    @optname = N'merge publish', 
    @value = N'true'

-- Add the merge publication.
EXEC sp_addmergepublication 
    @publication = @publication, 
    @description = N'Merge publication of Northwind.', 
    @retention = 14, 
    @sync_mode = N'native', 
    @centralized_conflicts = N'true', 
    @dynamic_filters = N'false', 
    @keep_partition_changes = N'false'

EXEC sp_addpublication_snapshot 
    @publication = @publication

-- Add the merge articles.
EXEC sp_addmergearticle 
    @publication = @publication, 
    @article = @article, 
    @source_owner = N'dbo', 
    @source_object = @article, 
    @type = N'table', 
    @description = null, 
    @column_tracking = N'true', 
    @schema_option = 0x000000000000CFF1
 GO

Aşağıdaki için başarıyla çalışması için yükseltilmiş bir birleştirme yayın oluşturur önceki komut dosyası örneğidir SQL Server 2005 ve sonraki sürümleri.Yeni parametrelerin varsayılan değerleri açıkça bildirilmiş olması.

Not

Windows kimlik bilgileri bilgilerini kullanarak çalışma zamanı sırasında sağlanacak olan sqlcmd değişkenleri komut dosyası kullanan kullanan kullanan dosyası.

-- To avoid storing the login and password in the script file, the value 
-- is passed into SQLCMD as a scripting variable. For information about 
-- how to use scripting variables on the command line and in SQL Server
-- Management Studio, see the "Executing Replication Scripts" section in
-- the topic "Programming Replication Using System Stored Procedures".

-- Enabling the replication database
-- Enable the replication database.
USE [Northwind]
GO

DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'Northwind';
SET @publication = N'NwdCustomersMerge';
SET @article = N'Customers';
-- Specify the Windows account to run the Snapshot Agent.
SET @login = $(Login); 
-- Supply the password at runtime.
SET @password = $(Password); 

EXEC sp_replicationdboption 
    @dbname = @publicationDB, 
    @optname = N'merge publish', 
    @value = N'true';

-- Add the merge publication.
EXEC sp_addmergepublication 
    @publication = @publication, 
    @description = N'Merge publication of Northwind.', 
    @retention = 14, 
    @sync_mode = N'native', 
    @dynamic_filters = N'false', 
    @keep_partition_changes = N'false',
    -- Only set to '90RTM' if all Subscribers are SQL Server 2005.
    @publication_compatibility_level = N'90RTM',
    @replicate_ddl = 1,
    @allow_subscriber_initiated_snapshot = N'true',
    @allow_web_synchronization = N'false',
    @allow_partition_realignment = N'true',
    @retention_period_unit = N'day',
    @automatic_reinitialization_policy = 0,
    @conflict_logging = N'both';

EXEC sp_addpublication_snapshot 
    @publication = @publication, 
    @job_login = @login,
    @job_password = @password;

-- Add the merge article.
EXEC sp_addmergearticle 
    @publication = @publication, 
    @article = @article, 
    @source_owner = N'dbo', 
    @source_object = @article, 
    @type = N'table', 
    @description = null, 
    @column_tracking = N'true', 
    @schema_option = 0x0000000000034FD1,
    @partition_options = 0,
    @subscriber_upload_options = 0,
    @identityrangemanagementoption = N'manual',
    @delete_tracking = N'true',
    @compensate_for_errors = N'false',
    @stream_blob_columns = N'true';
GO

Aşağıdaki örnek olarak verilebilir bir SQL Server 2000 oluşturur komut dosyası bir gönderme temelli abonelik için işlemsel yayın.Varsayılan parametreler, okunabilirlik için kaldırılmış.

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'NwdProductTran' 
SET @subscriber = N'MYSUBSERVER' 
SET @subscriptionDB = N'NorthwindReplica' 

-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber 
    @subscriber = @subscriber

-- Add a push subscription to a transactional publication.
USE [Northwind]
EXEC sp_addsubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @destination_db = @subscriptionDB, 
    @subscription_type = N'push'
GO

Aşağıdaki oluşturur önceki komut dosyası örneğidir bir gönderme temelli abonelik bir işlemsel yayım için yükseltme için başarılı bir şekilde çalıştırmak için SQL Server 2005 ve sonraki sürümleri.Yeni parametrelerin varsayılan değerleri açıkça bildirilmiş olması.

Not

Windows kimlik bilgileri bilgilerini kullanarak çalışma zamanı sırasında sağlanacak olan sqlcmd değişkenleri komut dosyası kullanan kullanan kullanan dosyası.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdProductTran'; 
SET @subscriber = $(Subscriber); 
SET @subscriptionDB = N'NorthwindReplica'; 
-- Specify the Windows account to run the Distribution Agent.
SET @login = $(Login); 
-- Supply the password at runtime.
SET @password = $(Password); 

-- Add a push subscription to a transactional publication.
USE [Northwind]
EXEC sp_addsubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @destination_db = @subscriptionDB, 
    @subscription_type = N'push';

-- Add an agent job to synchronize the push subscription.
EXEC sp_addpushsubscription_agent 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @subscriber_db = @subscriptionDB, 
    @job_login = @login, 
    @job_password = @password;
GO

Aşağıdaki örnek olarak verilebilir bir SQL Server 2000 oluşturur komut dosyası bir gönderme temelli abonelik bir birleştirme yayın.Varsayılan parametreler, okunabilirlik için kaldırılmış.

DECLARE @publication AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge' 
SET @subscriber = N'SUBSERVER' 
SET @subscriptionDB = N'NorthwindReplica' 

-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber 
  @subscriber = @subscriber

-- Add a push subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @subscriber_type = N'local',
  @sync_type = N'automatic'
GO

Aşağıdaki oluşturur önceki komut dosyası örneğidir bir gönderme temelli abonelik bir birleştirme yayın için yükseltme için başarılı bir şekilde çalıştırmak için SQL Server 2005 ve sonraki sürümleri.Yeni parametrelerin varsayılan değerleri açıkça bildirilmiş olması.

Not

Windows kimlik bilgileri bilgilerini kullanarak çalışma zamanı sırasında sağlanacak olan sqlcmd değişkenleri komut dosyası kullanan kullanan kullanan dosyası.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdCustomersMerge'; 
SET @subscriber = $(Subscriber); 
SET @subscriptionDB = N'NorthwindReplica'; 
-- Specify the Windows account to run the Merge Agent.
SET @login = $(Login); 
-- Supply the password at runtime.
SET @password = $(Password); 

-- Add a push subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @subscriber_db = @subscriptionDB, 
    @subscription_type = N'push';

-- Add an agent job to synchronize the push subscription.
EXEC sp_addmergepushsubscription_agent 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @subscriber_db = @subscriptionDB, 
    @job_login = @login, 
    @job_password = @password;
GO

Aşağıdaki örnek olarak verilebilir bir SQL Server 2000 komut dosyası oluşturur, bir istek temelli abonelik işlem bir yayın.Varsayılan parametreler, okunabilirlik için kaldırılmış.

DECLARE @publication AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge' 
SET @subscriber = N'SUBSERVER' 
SET @subscriptionDB = N'NorthwindReplica' 

-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber 
  @subscriber = @subscriber

-- Add a push subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'push',
  @subscriber_type = N'local',
  @sync_type = N'automatic'
GO

Aşağıdaki için başarıyla çalışması için yükseltilmiş bir işlem yayın için istek temelli abonelik oluşturur önceki komut dosyası örneğidir SQL Server 2005 ve sonraki sürümleri.Yeni parametrelerin varsayılan değerleri açıkça bildirilmiş olması.

Not

Windows kimlik bilgileri bilgilerini kullanarak çalışma zamanı sırasında sağlanacak olan sqlcmd değişkenleri komut dosyası kullanan kullanan kullanan dosyası.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute at the Subscriber.
DECLARE @publication AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdProductTran'; 
SET @publisher = $(Publisher); 
SET @publicationDB = N'Northwind'; 
-- Specify the Windows account to run the Distribution Agent.
SET @login = $(Login); 
-- Supply the password at runtime.
SET @password = $(Password); 

-- At the subscription database, create a pull subscription 
-- to a transactional publication.
USE [NorthwindReplica]
EXEC sp_addpullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB,
    @subscription_type = N'pull';

-- Add an agent job to synchronize the pull subscription.
EXEC sp_addpullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication, 
    @distributor = @publisher,
    @job_login = @login,
    @job_password = @password;
GO

-- Execute at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'NwdProductTran'; 
SET @subscriber = $(Subscriber); 
SET @subscriptionDB = N'NorthwindReplica'; 

-- Add a pull subscription to a transactional publication.
USE [Northwind]
EXEC sp_addsubscription 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @destination_db = @subscriptionDB, 
    @subscription_type = N'pull';
GO

Aşağıdaki örnek olarak verilebilir bir SQL Server 2000 komut dosyası oluşturur, bir istek temelli abonelik için bir birleştirme yayın.Varsayılan parametreler, okunabilirlik için kaldırılmış.

-- Execute at the Subscriber
DECLARE @publication AS sysname
DECLARE @publisher AS sysname
DECLARE @publicationDB AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge' 
SET @publisher = N'PUBSERVER' 
SET @publicationDB = N'Northwind' 
SET @subscriber = N'SUBSERVER' 
SET @subscriptionDB = N'NorthwindReplica'

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [NorthwindReplica]
EXEC sp_addmergepullsubscription 
    @publisher = @publisher, 
    @publication = @publication, 
    @publisher_db = @publicationDB

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
    @publisher = @publisher, 
    @publisher_db = @publicationDB, 
    @publication = @publication, 
    @subscriber = @subscriber, 
    @subscriber_db = @subscriptionDB, 
    @distributor = @publisher
GO

-- Execute at the Publisher.
DECLARE @publication AS sysname
DECLARE @subscriber AS sysname
DECLARE @subscriptionDB AS sysname
SET @publication = N'NwdCustomersMerge' 
SET @subscriber = N'MYSUBSERVER' 
SET @subscriptionDB = N'NorthwindReplica' 

-- Add a Subscriber, using the defaults.
USE [master]
EXEC sp_addsubscriber 
  @subscriber = @subscriber

-- Add a pull subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'pull',
  @subscriber_type = N'local',
  @sync_type = N'automatic'
GO

Bir mektup birleştirme istek temelli abonelik oluşturur önceki komut dosyası örneği şudur yayın, yükseltilen için başarılı bir şekilde çalıştırmak için SQL Server 2005 ve sonraki sürümleri.Yeni parametrelerin varsayılan değerleri açıkça bildirilmiş olması.

Not

Windows kimlik bilgileri bilgilerini kullanarak çalışma zamanı sırasında sağlanacak olan sqlcmd değişkenleri komut dosyası kullanan kullanan kullanan dosyası.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). For information about how to use scripting variables  
-- on the command line and in SQL Server Management Studio, see the 
-- "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".

-- Execute at the Subscriber
DECLARE @publication  AS sysname;
DECLARE @publisher AS sysname;
DECLARE @publicationDB AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publication = N'NwdCustomersMerge'; 
SET @publisher = $(Publisher); 
SET @publicationDB = N'Northwind'; 
-- Specify the Windows account to run the Merge Agent.
SET @login = $(Login); 
-- Pass the password at runtime.
SET @password = $(Password); 

-- At the subscription database, create a pull subscription 
-- to a merge publication.
USE [NorthwindReplica]
EXEC sp_addmergepullsubscription 
  @publisher = @publisher, 
  @publication = @publication, 
  @publisher_db = @publicationDB;

-- Add an agent job to synchronize the pull subscription. 
EXEC sp_addmergepullsubscription_agent 
  @publisher = @publisher, 
  @publisher_db = @publicationDB, 
  @publication = @publication,
  @distributor = @publisher,
  @job_login = @login,
  @job_password = @password;
GO

-- Execute at the Publisher.
DECLARE @publication AS sysname;
DECLARE @subscriber AS sysname;
DECLARE @subscriptionDB AS sysname;
SET @publication = N'NwdCustomersMerge';
SET @subscriber = $(Subscriber);
SET @subscriptionDB = N'NorthwindReplica';

-- Add a pull subscription to a merge publication.
USE [Northwind]
EXEC sp_addmergesubscription 
  @publication = @publication, 
  @subscriber = @subscriber, 
  @subscriber_db = @subscriptionDB, 
  @subscription_type = N'pull',
  @subscriber_type = N'local',
  @sync_type = N'automatic';
GO