Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir: SQL Server 2016 (13.x) and later versions
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL database in Microsoft Fabric
SQL Server Management Studio veya Transact-SQL kullanarak SQL Server'da çoğaltma için yabancı anahtar kısıtlamalarını devre dışı bırakabilirsiniz. Sql Server'ın önceki bir sürümünden veri yayımlıyorsanız bu yararlı olabilir.
Note
Tablo çoğaltma kullanılarak yayımlanırsa, çoğaltma aracıları tarafından gerçekleştirilen işlemler için yabancı anahtar kısıtlamaları otomatik olarak devre dışı bırakılır. Çoğaltma İçin Değil seçeneği, yabancı anahtar ve denetim kısıtlamaları için varsayılan olarak belirtilir; kısıtlamalar kullanıcı işlemleri için uygulanır, ancak ajan işlemleri için uygulanmaz. Bir çoğaltma aracısı abonede ekleme, güncelleştirme veya silme işlemi gerçekleştirdiğinde kısıtlama işaretlenmez; Kullanıcı ekleme, güncelleştirme veya silme işlemi gerçekleştirirse kısıtlama denetleniyor. Kısıtlama, veriler ilk eklendiğinde, güncelleştirildiğinde veya silindiğinde Publisher'da zaten denetlendiğinden çoğaltma aracısı için devre dışı bırakılır.
İzinleri
Tabloda ALTER izni gerektirir.
SQL Server Management Studio kullanma
Çoğaltma için yabancı anahtar kısıtlamasını devre dışı bırakmak için
Nesne Gezgini, tabloyu değiştirmek istediğiniz yabancı anahtar kısıtlamasıyla genişletin ve sonra Anahtarlar klasörünü genişletin.
Yabancı anahtar kısıtlamasına sağ tıklayın ve Değiştiröğesini seçin.
Yabancı Anahtar İlişkileri iletişim kutusunda, Çoğaltma İçin Zorlaiçin Yok değerini seçin.
Kapat'ıseçin.
Transact-SQL kullanma
Çoğaltma için yabancı anahtar kısıtlamasını devre dışı bırakmak için
Transact-SQL'de bu görevi gerçekleştirmek için yabancı anahtar kısıtlamasını betikleyin. Nesne Gezgini, tabloyu değiştirmek istediğiniz yabancı anahtar kısıtlamasıyla genişletin ve sonra Anahtarlar klasörünü genişletin.
Yabancı anahtar kısıtlamasına sağ tıklayın, Script Key As seçeneğini belirleyin, ardından DROP and CREATE To'yu seçin ve Yeni Sorgu Düzenleyici Penceresi'ni seçin. Elde edilen betik,
AdventureWorks2025örnek veritabanındaki aşağıdaki örneğe benzer görünmelidir:ALTER TABLE [Sales].[SalesTerritoryHistory] DROP CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GO ALTER TABLE [Sales].[SalesTerritoryHistory] WITH CHECK ADD CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] FOREIGN KEY([BusinessEntityID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]); GO ALTER TABLE [Sales].[SalesTerritoryHistory] CHECK CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GOBetiğin
ALTER TABLE ... ADD CONSTRAINTbölümünde yeni yabancı anahtar kısıtlamasını değiştirin ve ÇOĞALTMA İçİn DEĞİl seçeneğini belirtin. Örneğin:ALTER TABLE [Sales].[SalesTerritoryHistory] DROP CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GO ALTER TABLE [Sales].[SalesTerritoryHistory] WITH CHECK ADD CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] FOREIGN KEY([BusinessEntityID]) REFERENCES [Sales].[SalesPerson] ([BusinessEntityID]) NOT FOR REPLICATION; --added to disable constraint for replication GO ALTER TABLE [Sales].[SalesTerritoryHistory] CHECK CONSTRAINT [FK_SalesTerritoryHistory_SalesPerson_BusinessEntityID] GO
Sonraki Adımlar
- ALTER TABLE tablo_kısıtlaması (Transact-SQL)
- SQL Server Management Studio'da betik nesneleri
- Çoğaltma Yöneticileri için Sık Sorulan Sorular