Bagaimana menghapus semua baris dari semua tabel dalam database SQL Server?
sql-server-2005
Michał Powaga
sumber
sumber
Jawaban:
Perhatikan bahwa TRUNCATE tidak akan berfungsi jika Anda memiliki set integritas referensial.
Dalam hal ini, ini akan berhasil:
sumber
USE [MyDataBase]
:? Apakah ide di atas bekerja, jika diadaptasi entah bagaimana? ... Karena saya tidak ingin menghapus semua DB yang disimpan oleh server SQL.Dalam proyek terbaru saya, tugas saya adalah membersihkan seluruh database dengan menggunakan pernyataan sql dan setiap tabel memiliki banyak kendala seperti Primary Key dan Foreign Key. Ada lebih dari 1000 tabel dalam basis data sehingga tidak mungkin untuk menulis kueri penghapusan pada setiap tabel.
Dengan menggunakan prosedur tersimpan bernama sp_MSForEachTable yang memungkinkan kita untuk dengan mudah memproses beberapa kode terhadap masing-masing dan setiap tabel dalam satu basis data. Ini berarti bahwa itu digunakan untuk memproses satu perintah T-SQL atau perintah T-SQL yang berbeda terhadap setiap tabel dalam database.
Jadi ikuti langkah-langkah di bawah ini untuk memotong semua tabel dalam Database SQL Server:
Langkah 1- Nonaktifkan semua kendala pada database dengan menggunakan kueri sql berikut:
EXEC sys.sp_msforeachtable 'ALTER TABLE ? NOCHECK CONSTRAINT ALL'
Langkah 2- Jalankan operasi Hapus atau terpotong pada setiap tabel database dengan menggunakan perintah sql di bawah ini:
Langkah 3- Aktifkan semua kendala pada database dengan menggunakan pernyataan sql di bawah ini:
sumber
sql server azure
?Saya harus menghapus semua baris dan melakukannya dengan skrip berikutnya:
Semoga ini membantu!
sumber
Berikut ini solusinya:
INFORMATION_SCHEMA.TABLES
untuk database tertentuSELECTS
tabel berdasarkan beberapa kriteria pencariansysdiagrams
dan__RefactorLog
Awalnya saya mencoba
EXECUTE sp_MSforeachtable 'TRUNCATE TABLE ?'
, tetapi itu menghapus diagram saya.sumber
ALTER TABLE
bit kendala menonaktifkan gagal.Dalam kasus saya, saya harus mengaktifkan QUOTED_IDENTIFIER pada. Ini menyebabkan sedikit modifikasi dari jawaban Mark Rendle di atas:
sumber
DELETE failed because the following SET options have incorrect settings: 'QUOTED_IDENTIFIER'. Verify that SET options are correct for use with indexed views and/or indexes on computed columns and/or filtered indexes and/or query notifications and/or XML data type methods and/or spatial index operations.
sumber
Anda bisa menghapus semua baris dari semua tabel menggunakan pendekatan seperti yang disarankan Rubens, atau Anda bisa saja menjatuhkan dan membuat ulang semua tabel. Selalu ide yang baik untuk memiliki skrip pembuatan db penuh pula sehingga mungkin merupakan metode termudah / tercepat.
sumber
Untuk beberapa persyaratan, kami mungkin harus melewati tabel tertentu. Saya menulis skrip di bawah ini untuk menambahkan beberapa kondisi tambahan untuk memfilter daftar tabel. Script di bawah ini juga akan menampilkan jumlah pre delete dan post delete.
sumber
Jawaban ini didasarkan pada jawaban Zach Smith dengan mengatur ulang kolom identitas juga:
Ini pertanyaannya:
sumber
sumber
jika Anda ingin menghapus seluruh tabel, Anda harus mengikuti instruksi SQL berikutnya
sumber