delete kullanarak satır silme
delete deyim, bir tablo ya da görünümdeki bir veya daha fazla satır kaldırır.
Basitleştirilmiş form delete sözdizimi aşağıdaki gibidir:
DELETE table_or_view
FROM table_sources
WHERE search_condition
Parametre table_or_view bir tablo veya görünüm içinden satırları silinecek adlandırır.Tüm satırları table_or_view nerede arama koşulu silinir, nitelikleri karşılamak.Değil bir where yan tümce tümce tümce belirtilirse, tüm satırları table_or_view silinir.from yan tümce tümce belirtir ek tabloarama alanından silinecek satır nitelemek için koşul yüklemler where yan tümce tümce tümcende kullanılabilir s veya görünümler ve katılma koşulları dantable_or_view. satırları silinmez tablofrom yan tümce tümce tümcende adlı s, yalnızca tablo adlı table_or_view.
Tüm satırları olan herhangi tablo veritabanında kalır kaldırdı.delete deyim yalnızca satırları siler tablo; drop table deyim kullanarak, tablo veritabanından kaldırılması gerekir.
Bir öbekten satırları silmek
Ne zaman satır silinir gelen bir öbek Veritabanı Altyapısı kullanın satır ya da sayfa kilitleme işlemi.Sonuç olarak, silme işlemi tarafından yapılan boş sayfaları yığına ayrılmış kalır.Boş sayfaları ayırmanın, ilişkili alanı veritabanındaki diğer nesnelere göre yeniden kullanılamaz.
Bir yığın satırları silin ve sayfaları serbest bırakmak için aşağıdaki yöntemlerden birini kullanın.
tablock ipucu delete belirtmek deyim.tablock ipucu kullanarak paylaşılan bir kilit üzerinde gerçekleştirmek silme işlemi neden olan tablo bir satır ya da sayfa kilidi yerine.Bu sayfaları azaltılması sağlar.tablock ipucu hakkında daha fazla bilgi için bkz: Tablo İpuçları (Transact-SQL).
Tüm satırları tablodan silinecek truncate tablo kullanın.
kümelenmiş dizin satırları silmeden önce öbek üzerinde oluşturun.Kümelenmiş dizin satır silindiğinde bırakabilir.Bu yöntem daha saat önceki yöntemler'den kaybı ve geçici daha fazla kaynak kullanır.
Kilitleme hakkında daha fazla bilgi için bkz: Veritabanı Altyapısı'nda kilitleme.
Örnekler
Aşağıdaki örnekte,'den tüm satırlar silinir SalesPersonQuotaHistory çünkü tablo where yan tümce tümce tümce silinen satır sayısını sınırlamak için kullanılır değil.
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory;
GO
Aşağıdaki örnekte,'den tüm satırlar silinir ProductCostHistory Tablo değeri StandardCost sütun birden fazla 1000.00.
USE AdventureWorks2008R2;
GO
DELETE FROM Production.ProductCostHistory
WHERE StandardCost > 1000.00;
GO
Aşağıdaki örnekte gösterildiği Transact-SQL uzantısı kayıtlarını silmek için kullanılan bir temel tablo , birleştirmek işlemini temel alan veya bağıntılı alt sorgu.İlk DELETE deyim gösterir ISO uyumlu alt sorgu solution ve ikinci DELETE deyim gösterir Transact-SQL uzantısı.Her iki sorgu satırlarını kaldırma SalesPersonQuotaHistory tablo saklanan yıl tarih satış temel SalesPerson tablo.
-- SQL-2003 Standard subquery
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory
WHERE BusinessEntityID IN
(SELECT BusinessEntityID
FROM Sales.SalesPerson
WHERE SalesYTD > 2500000.00);
GO
-- Transact-SQL extension
USE AdventureWorks2008R2;
GO
DELETE FROM Sales.SalesPersonQuotaHistory
FROM Sales.SalesPersonQuotaHistory AS spqh
INNER JOIN Sales.SalesPerson AS sp
ON spqh.BusinessEntityID = sp.BusinessEntityID
WHERE sp.SalesYTD > 2500000.00;
GO
Ayrıca bkz.