Aracılığıyla paylaş


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