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
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform System (PDW)
SQL Server Database Engine'in bir örneğinden bir veya daha fazla kullanıcı veritabanı veya veritabanı anlık görüntüsünü kaldırır.
Transact-SQL söz dizimi kuralları
Syntax
SQL Server sözdizimi.
DROP DATABASE [ IF EXISTS ] { database_name | database_snapshot_name } [ ,...n ]
[ ; ]
Azure SQL Veritabanı, Azure Synapse Analytics ve Analytics Platform System syntax.
DROP DATABASE database_name
[ ; ]
Arguments
VARSA
için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler
Veritabanı koşullu olarak sadece zaten varsa düşürür.
database_name
Kaldırılacak veritabanının adını belirtir. Veritabanları listesini görüntülemek için sys.databases katalog görünümünü kullanın.
database_snapshot_name
Kaldırılacak veritabanı anlık görüntüsünün adını belirtir.
Remarks
Bir veritabanı, durumu ne olursa olsun düşürülebilir: çevrimdışı, sadece okunabilir, şüpheli ve benzeri. Bir veritabanının mevcut durumunu görüntülemek için katalog görünümünü sys.databases kullanın.
Bırakılan bir veritabanı yalnızca yedek geri yüklenerek yeniden oluşturulabilir. Veritabanı anlık görüntüleri yedeklenemez ve bu nedenle geri yüklenemiyor.
Bir veritabanı kaldırıldığında, ana veritabanı yedeklenmelidir.
Bir veritabanı düşürüldüğünde, veritabanı SQL Server örneklerinden silinir ve veritabanı tarafından kullanılan fiziksel disk dosyaları da silinir. Veritabanı veya dosyalarından herhangi biri devre dışı bırakıldığında çevrimdışı ise, disk dosyaları silinmez. Bu dosyalar, File Explorer gibi bir dosya yöneticisi kullanılarak manuel olarak silinebilir. Dosya sisteminden dosyaları silmeden mevcut sunucudan bir veritabanını kaldırmak için sp_detach_db kullanın.
Warning
SQL Server 2016 (13.x) ve sonraki sürümlerde, yedekleri olan veritabanını kaldırmak FILE_SNAPSHOT başarılı olur, ancak ilişkili anlık görüntülere sahip veritabanı dosyaları, bu veritabanı dosyalarına atıfta bulunan yedeklemelerin geçersiz kılınmasını önlemek için silinmez. Dosya kısaltılır, ancak yedeklerin korunması için fiziksel olarak silinmez FILE_SNAPSHOT . Daha fazla bilgi için bkz. SQL Server backup and restore with Azure Blob Depolama.
SQL Server
Veritabanı anlık görüntüsünün düşürülmesi, SQL Server örneklerinden veritabanı anlık görüntüsünü silir ve anlık görüntünün kullandığı fiziksel NTFS dosya sistemi seyrek dosyalarını siler. Veritabanı anlık görüntüleri için seyrek dosyaların kullanımı hakkında bilgi için Veritabanı anlık görüntüleri (SQL Server) sayfasına bakınız. Bir veritabanı anlık görüntüsünün düşürülmesi, veritabanı anlık görüntüsüyle ilişkili plan önbelleğindeki girişleri temizler, tüm örnek değil. Plan önbelleğinin temizlenmesi, sonraki tüm yürütme planlarının yeniden derlenmesine neden olur ve sorgu performansında ani, geçici bir düşüşe neden olabilir.
Plan önbelleğindeki her temizlenmiş cachestore için, SQL Server hata günlüğü aşağıdaki bilgilendirici mesajı içerir. Bu ileti, önbellek bu zaman aralığında temizlendiği sürece beş dakikada bir günlüğe kaydedilir.
SQL Server has encountered %d occurrence(s) of cachestore flush for the '%s' cachestore (part of plan cache) due to some database maintenance or reconfigure operations.
Interoperability
SQL Server
İşlemsel çoğaltma için yayımlanmış veya birleştirme replikasyonu için yayımlanmış veya abone edilmiş bir veritabanını kaldırmak için önce çoğaltmayı veritabanından kaldırmalısınız. Bir veritabanı zarar görürse veya replikasyon önce kaldırılamazsa (ya da her ikisi birden birden yapılabilir), çoğu durumda veritabanını çevrimdışı ayarlayıp sonra kaldırarak veritabanını bırakabilirsiniz ALTER DATABASE .
Eğer veritabanı log gönderimiyle ilgileniyorsa, veritabanını kaldırmadan önce log shipping'i kaldırın. Daha fazla bilgi için bkz. Günlük gönderimi hakkında (SQL Server).
Limitations
Sistem veritabanları kaldırılamaz.
Bu DROP DATABASE ifade otomatik commit modunda çalışmalıdır ve açık ya da örtük bir işlemde izin verilmez. Otomatik taahhüt modu varsayılan işlem yönetim modudur.
Warning
Şu anda kullanılan bir veritabanını bırakamazsınız. Bu, herhangi bir kullanıcı tarafından okunma veya yazma için kilitlerin tutulması anlamına gelir. Kullanıcıları veritabanından çıkarmanın bir yolu, ALTER DATABASE veritabanını SINGLE_USER olarak ayarlamaktır. Bu stratejide, ve DROP DATABASE düyünü aynı grupta çalıştırmalısınızALTER DATABASE, böylece tek kullanıcı oturumuna izin verildiğini iddia eden başka bir bağlantıyı önlemen. Daha fazla bilgi için Örnek D'ye bakınız.
SQL Server
Veritabanındaki herhangi bir veritabanı anlık görüntüleri, veritabanı kaldırılmadan önce kaldırılmalıdır.
Stretch Database için veritabanı etkinleştirilmesi uzak verileri kaldırmaz. Uzak verileri silmek istiyorsanız, manuel olarak silmeniz gerekir.
Önemli
Stretch Database, SQL Server 2022 (16.x) ve Azure SQL Veritabanı'nda kullanım dışıdır. Bu özellik, Veritabanı Altyapısı'nın gelecekteki bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın.
Azure SQL Veritabanı
Veritabanını bırakmak için veritabanına master bağlı olmanız gerekir.
Bu DROP DATABASE ifade SQL batch'teki tek ifade olmalı ve aynı anda sadece bir veritabanını bırakabilirsiniz.
Azure Synapse Analytics
Veritabanını bırakmak için veritabanına master bağlı olmanız gerekir.
Bu DROP DATABASE ifade SQL batch'teki tek ifade olmalı ve aynı anda sadece bir veritabanını bırakabilirsiniz.
Permissions
SQL Server
Veritabanı üzerindeki izni, ALTER ANY DATABASE izni veya db_owner sabit veritabanı rolü üyeliğini gerektirirCONTROL.
Azure SQL Veritabanı
Sadece sunucu düzeyindeki ana giriş (provisioning süreciyle oluşturulan) veya dbmanager veritabanı rolünün üyeleri veritabanını bırakabilir.
Analiz Platformu Sistemi (PDW)
Veritabanı üzerindeki izni, ALTER ANY DATABASE izni veya db_owner sabit veritabanı rolü üyeliğini gerektirirCONTROL.
Examples
A. Tek bir veritabanını bırak
Aşağıdaki örnek veritabanını Sales kaldırır.
DROP DATABASE Sales;
B. Birden fazla veritabanını kaldırın
Aşağıdaki örnek, listelenen veritabanlarının her birini kaldırmaktadır.
DROP DATABASE Sales, NewSales;
C. Bir veritabanı anlık görüntüsü bırakın
Aşağıdaki örnek, kaynak veritabanını etkilemeden adlandırılan sales_snapshot0600bir veritabanı anlık görüntüsünü kaldırır.
DROP DATABASE sales_snapshot0600;
D. Veritabanının var olup olmadığını kontrol ettikten sonra bırakın
Aşağıdaki örnek önce bir veritabanı adının Sales var olup olmadığını kontrol eder. Eğer öyleyse, örnek veritabanını Sales tek kullanıcı moduna çevirerek diğer tüm oturumların bağlantısını zorla kapatır, ardından veritabanı kaldırılır. SINGLE_USER hakkında daha fazla bilgi için seçeneklere bakabilirsinizALTER DATABASE SET.
USE tempdb;
GO
DECLARE @SQL AS NVARCHAR (1000);
IF EXISTS (SELECT 1
FROM sys.databases
WHERE [name] = N'Sales')
BEGIN
SET @SQL = N'USE [Sales];
ALTER DATABASE Sales SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
USE [tempdb];
DROP DATABASE Sales;';
EXECUTE (@SQL);
END