Bagaimana saya bisa menjatuhkan semua tabel yang namanya dimulai dengan string yang diberikan?
Saya pikir ini bisa dilakukan dengan beberapa SQL dinamis dan INFORMATION_SCHEMA
tabel.
sql
sql-server
dynamic-sql
Blorgbeard keluar
sumber
sumber
close cmds; deallocate cmds
.Ini akan menghasilkan skrip.
Menambahkan klausa untuk memeriksa keberadaan tabel sebelum menghapus:
sumber
WHERE TABLE_NAME LIKE 'em\_%' ESCAPE '\';
Ini akan membuat Anda tabel dalam urutan kunci asing dan menghindari menjatuhkan beberapa tabel yang dibuat oleh SQL Server. The
t.Ordinal
nilai akan mengiris tabel ke dalam lapisan ketergantungan.sumber
Pada Oracle XE ini berfungsi:
Atau jika Anda ingin menghapus kendala dan membebaskan ruang juga, gunakan ini:
Yang akan menghasilkan banyak
DROP TABLE cascade constraints PURGE
pernyataan ...Untuk
VIEWS
menggunakan ini:sumber
Saya melihat posting ini ketika saya mencari pernyataan mysql untuk menghapus semua tabel WordPress berdasarkan @Xenph Yan, inilah yang akhirnya saya lakukan:
ini akan memberi Anda set drop query untuk semua tabel yang dimulai dengan wp_
sumber
Ini solusinya:
Dan tentu saja Anda perlu mengganti
TABLE_PREFIX_GOES_HERE
dengan awalan Anda.sumber
Edit:
sp_MSforeachtable tidak berdokumen sehingga tidak cocok untuk produksi karena perilakunya dapat bervariasi tergantung pada versi MS_SQL.
sumber
sumber
Jawaban Xenph Yan jauh lebih bersih dari pada jawabanku tapi ini milikku sama saja.
Ubah saja
tableName
ke karakter yang ingin Anda cari.sumber
Ini berhasil untuk saya.
sumber
- Tes adalah nama tabel
sumber
sumber
Saya harus melakukan sedikit derivasi pada jawaban Xenph Yan yang saya curigai karena saya punya tabel tidak dalam skema default.
sumber
Dalam hal tabel sementara, Anda mungkin ingin mencoba
sumber