Arasındaki fark nedir TRUNCATE
ve DELETE
SQL?
Cevabınız platforma özgü ise, lütfen bunu belirtin.
Arasındaki fark nedir TRUNCATE
ve DELETE
SQL?
Cevabınız platforma özgü ise, lütfen bunu belirtin.
Yanıtlar:
İşte farklılıkların bir listesi. Oracle'a özgü özellikleri vurguladım ve umarım topluluk diğer satıcıların özel farklarını da ekleyebilir. Çoğu satıcı için ortak olan farklılıklar, aşağıda vurgulanan farklılıklar ile doğrudan başlıkların altına inebilir.
Bir tablodaki tüm satırları hızlı bir şekilde silmek istiyorsanız ve bunu yapmak istediğinizden gerçekten eminseniz ve tablolara karşı yabancı anahtarlarınız yoksa, bir TRUNCATE muhtemelen bir DELETE'den daha hızlı olacaktır. .
Aşağıda ayrıntılı olarak açıklandığı gibi, sisteme özgü çeşitli hususlar dikkate alınmalıdır.
Silme DML, Kesme DDL ( DDL ve DML nedir? )
Satıcıya göre değişken
SQL Server
Kesme geri alınabilir.
PostgreSQL
Kesme geri alınabilir.
torpil
TRUNCATE DDL olduğu için, ifadenin yürütülmesinden önce ve sonra iki taahhüt içerir. Bu nedenle, kesme kesilemez ve kesme işlemindeki bir başarısızlık yine de bir taahhüt vermiş olacaktır.
Ancak, aşağıdaki Flashback'e bakın.
Sil alanı kurtarmaz, Kes alanı kurtarır
torpil
REUSE STORAGE yantümcesini kullanırsanız, veri bölümleri ayrılmaz, bu da tablo verilerle yeniden yüklenecekse marjinal olarak daha verimli olabilir. Yüksek su işareti sıfırlanır.
Sil, tüm satırları veya yalnızca bir satır alt kümesini kaldırmak için kullanılabilir. Kes, tüm satırları kaldırır.
torpil
Bir tablo bölümlendiğinde, ayrı bölümler ayrı ayrı kesilebilir, böylece tüm tablo verilerinin kısmen kaldırılması mümkündür.
Sil, bir kümedeki tablolara ve tablolara uygulanabilir. Kesme yalnızca tablolar veya kümenin tamamı için geçerlidir. (Oracle'a özgü olabilir)
torpil
Sil, veri nesnesi kimliğini etkilemez, ancak kesildi , oluşturulduğundan bu yana tabloya karşı hiçbir ekleme yapılmadığı sürece yeni bir veri nesnesi kimliği atar. Geri alınan tek bir ekleme bile kesme işleminden sonra yeni bir veri nesnesi kimliğinin atanmasına neden olur .
Flashback silmeler arasında çalışır, ancak bir kesme işlemi işlemden önce durumlara geri dönmeyi önler.
Bununla birlikte, 11gR2'den FLASHBACK ARCHIVE özelliği buna izin verir, Express Edition hariç
Oracle'da FLASHBACK kullanımı http://docs.oracle.com/cd/E11882_01/appdev.112/e41502/adfns_flashback.htm#ADFNS638
Değişken
torpil
Silme, bir tabloya başka bir kullanıcıya veya role verilebilir, ancak kesilme, HERHANGİ BİR TABLO DROP'u kullanmadan yapılamaz.
Sil, az miktarda yineleme ve büyük miktarda geri alma işlemi üretir. Kesme, her biri ihmal edilebilir bir miktarda üretir.
torpil
Kesme işlemi, kullanılamayan dizinleri yeniden kullanılabilir hale getirir. Silme yapmaz.
Etkinleştirilmiş bir yabancı anahtar tabloya başvurduğunda kesme uygulanamaz. Silme işlemi, yabancı anahtarların yapılandırmasına bağlıdır.
torpil
Kesme özel bir tablo kilidi gerektirir, silme paylaşılan bir tablo kilidi gerektirir. Bu nedenle tablo kilitlerinin devre dışı bırakılması, bir tablodaki kesme işlemlerini önlemenin bir yoludur.
DML tetikleyicileri kesik kesilmez.
torpil
DDL tetikleyicileri mevcuttur.
torpil
Bir veritabanı bağlantısı üzerinden kesme yapılamaz.
SQL Server
Kes, IDENTITY sütun türleri için diziyi sıfırlar, silemez.
Çoğu uygulamada, bir DELETE
ifade silinen satırları istemciye döndürebilir.
örneğin bir Oracle PL / SQL alt programında şunları yapabilirsiniz:
DELETE FROM employees_temp
WHERE employee_id = 299
RETURNING first_name,
last_name
INTO emp_first_name,
emp_last_name;
Kesme ve silme arasındaki fark aşağıda listelenmiştir:
+----------------------------------------+----------------------------------------------+
| Truncate | Delete |
+----------------------------------------+----------------------------------------------+
| We can't Rollback after performing | We can Rollback after delete. |
| Truncate. | |
| | |
| Example: | Example: |
| BEGIN TRAN | BEGIN TRAN |
| TRUNCATE TABLE tranTest | DELETE FROM tranTest |
| SELECT * FROM tranTest | SELECT * FROM tranTest |
| ROLLBACK | ROLLBACK |
| SELECT * FROM tranTest | SELECT * FROM tranTest |
+----------------------------------------+----------------------------------------------+
| Truncate reset identity of table. | Delete does not reset identity of table. |
+----------------------------------------+----------------------------------------------+
| It locks the entire table. | It locks the table row. |
+----------------------------------------+----------------------------------------------+
| Its DDL(Data Definition Language) | Its DML(Data Manipulation Language) |
| command. | command. |
+----------------------------------------+----------------------------------------------+
| We can't use WHERE clause with it. | We can use WHERE to filter data to delete. |
+----------------------------------------+----------------------------------------------+
| Trigger is not fired while truncate. | Trigger is fired. |
+----------------------------------------+----------------------------------------------+
| Syntax : | Syntax : |
| 1) TRUNCATE TABLE table_name | 1) DELETE FROM table_name |
| | 2) DELETE FROM table_name WHERE |
| | example_column_id IN (1,2,3) |
+----------------------------------------+----------------------------------------------+
DÜŞÜRMEK
DROP komutu veritabanından bir tabloyu kaldırır. Tüm tabloların satırları, dizinleri ve ayrıcalıkları da kaldırılacaktır. Hiçbir DML tetikleyicisi tetiklenmez. İşlem geri alınamaz.
KESILMESINDEN
TRUNCATE bir tablodaki tüm satırları kaldırır. İşlem geri alınamaz ve tetikleyici tetiklenmez. Bu nedenle, TRUNCATE daha hızlıdır ve DELETE kadar alanı geri almaz. Kesme sırasında tablo seviyesi kilidi eklenecektir.
SİL
DELETE komutu tablodaki satırları kaldırmak için kullanılır. WHERE deyimi yalnızca bazı satırları kaldırmak için kullanılabilir. WHERE koşulu belirtilmezse, tüm satırlar kaldırılır. Bir SİL işlemi gerçekleştirdikten sonra, değişikliği kalıcı hale getirmek veya geri almak için işlemi DEVREYE ALMALI veya GERİ ALMALISINIZ Bu işlemin, tablodaki tüm DELETE tetikleyicilerinin tetiklenmesine neden olacağını unutmayın. Silme işlemi sırasında satır seviyesi kilidi eklenir.
Gönderen: http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands
Eklemem gereken tüm iyi cevaplar:
Yana TRUNCATE TABLE
bir DDL (olan Veri Tanımı Dili ), bir DML ( veri düzenleme Langauge ) komutu, Delete Triggers
koşma.
SQL sunucusunda Vs Truncate Silme Özeti
Komple Makale için şu bağlantıyı izleyin: http://codaffection.com/sql-server-article/delete-vs-truncate-in-sql-server/
Dotnet mob makalesinden alınmıştır: SQL Server'da Vs Truncate Sil
SQL Server veya MySQL ile, otomatik artışlı bir PK varsa, kesme sayacı sıfırlar.
DBCC CHECKIDENT (table_name, RESEED, 1)
"Kesme hiçbir şey kaydetmiyor" doğrudur. Daha ileri giderdim:
Kesme işlemi bir işlem bağlamında yürütülmez.
Kesmenin silinmeye karşı hız avantajı açık olmalıdır. Bu avantaj, durumunuza bağlı olarak önemsizden devasa düzeylere kadar değişir.
Ancak, kesilmenin kasıtsız olarak referans bütünlüğünü bozduğunu ve diğer kısıtlamaları ihlal ettiğini gördüm. Bir işlemin dışındaki verileri değiştirerek elde ettiğiniz güç, ip olmadan ağda yürüdüğünüzde aldığınız sorumluluğa karşı dengelenmelidir.
TRUNCATE
DDL ifadesidir, DELETE
DML ifadesidir. İkisi arasındaki farklar aşağıdadır:
Gibi TRUNCATE
bir DDL (olan veri tanımlama dili ) ifadesi bu kalıcı değişiklikler yapmak için taahhüt gerektirmez. Ve bu, truncate tarafından silinen satırların geri alınamama nedenidir. Öte yandan DELETE
bir DML ( Veri düzenleme dili ) ifadesi bu nedenle etkisini kalıcı hale getirmek için açık bir taahhüt gerektirir.
TRUNCATE
her zaman bir tablodan tüm satırları kaldırır ve tablo boş bırakılır ve tablo yapısı bozulmaz; oysa DELETE
, nerede cümlesi kullanılırsa koşullu olarak kaldırılabilir.
İfadeyle silinen satırlar TRUNCATE TABLE
geri yüklenemez ve TRUNCATE
ifadede where yan tümcesini belirtemezsiniz .
TRUNCATE
üzerinde silme tetikte ait aksine ifadeleri tetikleyiciler ateş etmiyor DELETE
açıklamada
İşte konuyla ilgili çok iyi bir bağlantı.
Evet, DELETE daha yavaş, TRUNCATE daha hızlı. Neden?
DELETE kayıtları okumalı, kısıtlamaları kontrol etmeli, bloğu güncellemeli, dizinleri güncellemeli ve yineleme / geri alma üretmelidir. Bütün bunlar zaman alır.
TRUNCATE, tablodaki (High Water Mark) ve puf için veritabanında bir işaretçi ayarlar! veriler kayboldu.
Bu Oracle'a özgü AFAIK.
KESILMESINDEN
TRUNCATE SQL sorgusu, tek tek satır silme işlemlerini kaydetmeden tablodaki tüm satırları kaldırır.
SİL
Bir DELETE kuyruğunu yürütmek için hedef tabloda silme izinleri gerekir. DELETE içinde bir WHERE yan tümcesi kullanmanız gerekiyorsa, belirli izinler de gerekir.
Yanlışlıkla Sil / Kes'i kullanarak tablodaki tüm verileri kaldırdınız. Taahhütlü işlemi geri alabilirsiniz. Son yedeklemeyi geri yükleyin ve Sil / Kısalt'ın gerçekleşeceği zamana kadar işlem günlüğünü çalıştırın.
Aşağıdaki ilgili bilgiler bir blog yayınından alınmıştır :
Veritabanı üzerinde çalışırken, aralarındaki farkları bilmeden Delete ve Truncate'i kullanıyoruz. Bu yazıda, Sql'de Delete ve Truncate arasındaki farkı tartışacağız.
Sil:
- Sil bir DML komutudur.
- Delete ifadesi bir satır kilidi kullanılarak yürütülür, tablodaki her satır silinmek üzere kilitlenir.
- Nerede cümlede filtreler belirtebiliriz.
- Koşulun mevcut olması durumunda belirtilen verileri siler.
- İşlem tek tek günlüğe kaydedildiğinden, tetikleyici etkinlikleri silin.
- Günlükleri Tutar çünkü Kesikten Daha Yavaş
truncate
- Kesme bir DDL komutudur.
- Tabloyu kes her zaman tabloyu ve sayfayı kilitler, ancak her satırı kilitlemez. Tüm verileri kaldırdığı için.
- Where koşulu kullanılamaz.
- Tüm verileri kaldırır.
- İşlem tek tek satır silme işlemlerini kaydetmediğinden kesme tablosu tetikleyiciyi etkinleştiremiyor.
- Performans açısından daha hızlı, çünkü hiçbir kayıt tutmuyor.
Not: Silme ve Kesme, İşlemle birlikte kullanıldığında geri alınabilir. İşlem tamamlanmışsa, anlamına gelir, o zaman Kes komutunu geri alamayız, ancak yine de silme komutunu Günlük dosyalarından geri alabiliriz.
Kesmeye çalıştığınız tabloya ilişkin Yabancı anahtar kısıtlamanız varsa, başvuru tablosunda veri bulunmasa bile bu çalışmaz. Bunun nedeni, yabancı anahtar denetiminin DML yerine DDL ile yapılmasıdır. Bu, tablodaki yabancı anahtar kısıtlamalarını geçici olarak devre dışı bırakarak çözülebilir.
Tabloyu sil, kaydedilmiş bir işlemdir. Böylece her satırın silinmesi işlem günlüğüne kaydedilir, bu da onu yavaşlatır. Tabloyu kes, tablodaki tüm satırları da siler, ancak her satırın silinmesini günlüğe kaydetmez, bunun yerine tablonun veri sayfalarının yeniden konumlandırılmasını günlüğe kaydeder, bu da onu daha hızlı hale getirir.
~ Yanlışlıkla Sil / Kes kullanarak tablodaki tüm verileri kaldırdınız. Taahhütlü işlemi geri alabilirsiniz. Son yedeklemeyi geri yükleyin ve Sil / Kısalt'ın gerçekleşeceği zamana kadar işlem günlüğünü çalıştırın.
SQL Server 2005'te bir kısaltmayı geri alabileceğinize inanıyorum
SİL
DELETE komutu tablodaki satırları kaldırmak için kullanılır. WHERE deyimi yalnızca bazı satırları kaldırmak için kullanılabilir. WHERE koşulu belirtilmezse, tüm satırlar kaldırılır. Bir SİL işlemi gerçekleştirdikten sonra, değişikliği kalıcı hale getirmek veya geri almak için işlemi DEVREYE ALMALI veya GERİ ALMALISINIZ Bu işlemin, tablodaki tüm DELETE tetikleyicilerinin tetiklenmesine neden olacağını unutmayın.
KESILMESINDEN
TRUNCATE bir tablodaki tüm satırları kaldırır. İşlem geri alınamaz ve tetikleyici tetiklenmez. Bu nedenle, TRUCATE daha hızlıdır ve DELETE kadar alanı geri almaz.
DÜŞÜRMEK
DROP komutu veritabanından bir tabloyu kaldırır. Tüm tabloların satırları, dizinleri ve ayrıcalıkları da kaldırılacaktır. Hiçbir DML tetikleyicisi tetiklenmez. İşlem geri alınamaz.
DROP ve TRUNCATE DDL komutlarıdır, oysa DELETE bir DML komutudur. Bu nedenle, DELETE işlemleri geri alınabilir (geri alınabilir), DROP ve TRUNCATE işlemleri geri alınamaz.
Gönderen: http://www.orafaq.com/faq/difference_between_truncate_delete_and_drop_commands
TRUNCATE, bir işleme sarılırsa geri alınabilir.
Lütfen aşağıdaki iki referansa bakın ve kendinizi test edin: -
TRUNCATE vs. DELETE, SQL röportajları sırasında rezil sorulardan biridir. Sadece bunu Mülakatçıya doğru bir şekilde açıkladığınızdan emin olun, aksi takdirde işiniz size mal olabilir. Sorun, pek çok kişinin farkında olmamalarıdır, bu nedenle, YES Truncate'in geri alınabileceğini söylerseniz, cevabı yanlış olarak düşünürler.
Orijinal yanıt silme işleminde yapılan küçük bir düzeltme de önemli miktarda yineleme sağlar (geri alma işleminin kendisi yineleme ile korunduğu için). Bu, otomatik izleme çıktısından görülebilir:
SQL> delete from t1;
10918 rows deleted.
Elapsed: 00:00:00.58
Execution Plan
----------------------------------------------------------
0 DELETE STATEMENT Optimizer=FIRST_ROWS (Cost=43 Card=1)
1 0 DELETE OF 'T1'
2 1 TABLE ACCESS (FULL) OF 'T1' (TABLE) (Cost=43 Card=1)
Statistics
----------------------------------------------------------
30 recursive calls
12118 db block gets
213 consistent gets
142 physical reads
3975328 redo size
441 bytes sent via SQL*Net to client
537 bytes received via SQL*Net from client
4 SQL*Net roundtrips to/from client
2 sorts (memory)
0 sorts (disk)
10918 rows processed
İşte SQL Server'da DELETE ve TRUNCATE arasındaki fark hakkındaki ayrıntılı cevabım
• Verileri Kaldır : İlk önce, her ikisi de satırları tablodan kaldırmak için kullanılabilir.
Ancak DELETE, satırları yalnızca bir Tablodan değil, aynı zamanda bir GÖRÜNÜM'den veya sağlayıcı yeteneklerine tabi bir OPENROWSET veya OPENQUERY sonucundan kaldırmak için kullanılabilir.
• FROM Yan tümcesi : DELETE ile başka bir FROM yan tümcesi kullanarak başka bir tablodaki satırlara dayalı olarak bir tablo / görünüm / rowset_function_limited satırlarını da silebilirsiniz. Bu FROM yan tümcesinde normal JOIN koşullarını da yazabilirsiniz. Aslında, SELECT yerine DELETE yazıp sütun adlarını kaldırarak hiçbir toplama işlevi içermeyen bir SELECT ifadesinden bir DELETE ifadesi oluşturabilirsiniz.
TRUNCATE ile bunu yapamazsınız.
• NEREDE : BİR TRUNCATE'in NEREDE Koşulları olamaz, ancak bir DELETE olabilir. Bu, TRUNCATE ile belirli bir satırı veya belirli bir grup grubunu silemeyeceğiniz anlamına gelir. TRUNCATE TABLE, WHERE deyimi olmayan DELETE deyimine benzer.
• Performans : TRUNCATE TABLE daha hızlıdır ve daha az sistem ve işlem günlüğü kaynağı kullanır. Bunun nedenlerinden biri, her iki ifade tarafından kullanılan kilitlerdir. DELETE deyimi bir satır kilidi kullanılarak yürütülür, tablodaki her satır silinmek üzere kilitlenir. TRUNCATE TABLE her zaman tablo ve sayfayı kilitler, ancak her satırı kilitlemez.
• İşlem günlüğü : DELETE deyimi satırları birer birer kaldırır ve her satır için işlem günlüğünde tek tek girişler yapar.
TRUNCATE TABLE, tablo verilerini depolamak için kullanılan veri sayfalarını ayırarak verileri kaldırır ve yalnızca işlem günlüğüne yalnızca sayfa ayırmalarını kaydeder.
• Sayfalar : DELETE deyimi yürütüldükten sonra tablo yine de boş sayfalar içerebilir. TRUNCATE, tablo verilerini depolamak için kullanılan veri sayfalarını ayırarak verileri kaldırır.
• Tetikleyici : TRUNCATE, tablodaki silme tetikleyicilerini etkinleştirmez. TRUNCATE'i kullanırken çok dikkatli olmalısınız. Satırlar silindiğinde bazı otomatik temizleme veya günlüğe kaydetme eylemi yapmak için silme tetikleyicisi tanımlanmışsa, asla TRUNCATE kullanılmamalıdır.
• Kimlik Sütunu : Tablo bir kimlik sütunu içeriyorsa TRUNCATE ile, bu sütunun sayacı sütun için tanımlanan tohum değerine sıfırlanır. Hiçbir tohum tanımlanmamışsa, varsayılan değer 1 kullanılır. DELETE kimlik sayacını sıfırlamaz. Bu nedenle, kimlik sayacını korumak istiyorsanız, bunun yerine DELETE kullanın.
• Çoğaltma : DELETE, işlem çoğaltmasında veya birleştirme çoğaltmasında kullanılan tabloya karşı kullanılabilir.
TRUNCATE, işlem çoğaltması veya birleştirme çoğaltmasıyla ilgili tablolara karşı kullanılamaz.
• Geri alma : DELETE ifadesi geri alınabilir.
TRUNCATE, bir TRANSACTION bloğunun içine alındığı ve oturumun kapatılmadığı takdirde geri alınabilir. Oturum kapatıldıktan sonra TRUNCATE'i geri alamazsınız.
• Kısıtlamalar : DELETE deyimi, bir tetikleyiciyi ihlal ederse veya FOREIGN KEY kısıtlaması olan başka bir tablodaki veriler tarafından başvurulan bir satırı kaldırmaya çalışırsa başarısız olabilir. DELETE birden çok satırı kaldırırsa ve kaldırılan satırlardan herhangi biri bir tetikleyiciyi veya kısıtlamayı ihlal ederse, ifade iptal edilir, bir hata döndürülür ve hiçbir satır kaldırılmaz.
Görünümde DELETE kullanılırsa, bu Görünüm Güncellenebilir bir görünüm olmalıdır. TRUNCATE, Dizinlenmiş görünümde kullanılan tabloya karşı kullanılamaz.
TRUNCATE, kendisine başvuran yabancı anahtar içeren bir tablo olmadığı sürece, bir FOREIGN KEY kısıtlaması tarafından başvurulan tabloya karşı kullanılamaz.
DECLARE @ai as bigint
SET @ai =IDENT_CURRENT('tablename')
TRUNCATE TABLE tablename
DBCC checkident('tablename', RESEED, @ai)
Deyimi SİL: Bu komut, where yan tümcesinde verilen koşula bağlı olarak yalnızca tablodaki satırları siler veya herhangi bir koşul belirtilmemişse tablodaki tüm satırları siler. Ancak tabloyu içeren alanı boşaltmaz.
SQL DELETE deyiminin sözdizimi:
Table_name [WHERE koşulu] 'dan SİL;
TRUNCATE deyimi: Bu komut tablodaki tüm satırları silmek ve tabloyu içeren alanı boşaltmak için kullanılır.
SİL
DELETE is a DML command DELETE you can rollback Delete = Only Delete- so it can be rolled back In DELETE you can write conditions using WHERE clause Syntax – Delete from [Table] where [Condition]
KESILMESINDEN
TRUNCATE is a DDL command You can't rollback in TRUNCATE, TRUNCATE removes the record permanently Truncate = Delete+Commit -so we can't roll back You can't use conditions(WHERE clause) in TRUNCATE Syntax – Truncate table [Table]
Daha fazla bilgi için
http://www.zilckh.com/what-is-the-difference-between-truncate-and-delete/
Kısacası, kesme hiçbir şey günlüğe kaydetmez (bu yüzden çok daha hızlıdır ancak geri alınamaz), ancak silme günlüğe kaydedilir (ve daha büyük bir işlemin parçası olabilir, geri dönüş vb.). Dev'deki bir tabloda istemediğiniz verileriniz varsa, işlem günlüğünü doldurma riski taşımadığınız için kısaltmak normalde daha iyidir
Kullanışlı olmasının en büyük nedeni, verileri milyonlarca satırlık bir tabloda yenilemeniz gerektiğinde, ancak yeniden oluşturmak istemediğiniz zamandır. "Sil *" sonsuza dek sürerken, Truncate'in performans etkisi göz ardı edilebilir.
Bir dblink üzerinden DDL yapılamaz.
Bu kesme SQL Server'da bir şey günlüğe kaydetmez. truncate herhangi bir bilgi günlüğe kaydetmez, ancak TRUNCATE'i başlattığınız tablo için veri sayfasının yeniden ayrılmasını günlüğe kaydeder.
ve başlangıçta işlemi tanımlarsak kesilmiş kayıt geri alınabilir ve kesilmiş kaydı geri aldıktan sonra kurtarabiliriz. Ancak, kesilen işlemden sonra kesilen kayıtları işlem günlüğü yedeklemesinden kurtaramazsınız.
Kesmek burada exapmle geri alınabilir
begin Tran
delete from Employee
select * from Employee
Rollback
select * from Employee
SQL'de Kes ve Sil, tablodan veri kaldırmak veya silmek için kullanılan iki komuttur. Doğada oldukça basit olmasına rağmen, her iki Sql komutu, kullanmadan önce ayrıntılara aşina olana kadar çok fazla sorun yaratabilir. Hatalı bir komut seçimi, çok yavaş bir işlem olabilir veya çok fazla verinin kaldırılması gerekiyorsa ve log segmenti yeterli değilse, log segmentini havaya uçurabilir. Bu nedenle SQL'de truncate ve delete komutunun ne zaman kullanılacağını bilmek önemlidir, ancak bunları kullanmadan önce Truncate ve Delete arasındaki Farkların farkında olmalısınız ve bunlara dayanarak, DELETE'nin kaldırmanın ne zaman daha iyi bir seçenek olduğunu öğrenebilmeliyiz tabloları temizlemek için veri veya TRUNCATE kullanılmalıdır.
Bakın kontrol buraya tıklayın
Microsoft sql sunucusuna özgü bir fark daha, hangi kayıtların silindiğini izlemek delete
için output
deyimi kullanabilirsiniz , örn:
delete from [SomeTable]
output deleted.Id, deleted.Name
Bunu ile yapamazsın truncate
.