Monday, August 24, 2015

Xóa tất cả các table, procedure, view và trigger



Thỉnh thoảng¸ có những trường hợp, khi bạn muốn gỡ bỏ tất cả các bảng, các thủ tục, các view và trigger từ database của mình. Điều đó rất bình thường nếu bạn chỉ có 1-10 bảng hay thủ tục, bạn chỉ cần làm những thao tác đã được hỗ trợ trên Sql server managerment. Nhưng nếu bạn có đến hơn 100 table, procedure và view trong database của bạn, thì việc gỡ bỏ bằng những thao tác bình thường thật là khó chịu và tẻ nhạt. Trong bài viết này mình sẽ chia sẻ với các bạn một số script giúp các bạn gỡ bỏ table, procedure, view và trigger một cách nhanh chóng hơn.

Xóa tất cả table

  1. EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"

Xóa tất cả Procedure do người dùng định nghĩa

  1. Declare @procName varchar(500)
  2. Declare cur Cursor For Select [name] From sys.objects where type = 'p'
  3. Open cur
  4. Fetch Next From cur Into @procName
  5. While @@fetch_status = 0
  6. Begin
  7. Exec('drop procedure ' + @procName)
  8. Fetch Next From cur Into @procName
  9. End
  10. Close cur
  11. Deallocate cur

Xóa bỏ các view

  1. Declare @viewName varchar(500)
  2. Declare cur Cursor For Select [name] From sys.objects where type = 'v'
  3. Open cur
  4. Fetch Next From cur Into @viewName
  5. While @@fetch_status = 0
  6. Begin
  7. Exec('drop view ' + @viewName)
  8. Fetch Next From cur Into @viewName
  9. End
  10. Close cur
  11. Deallocate cur

Xóa các trigger

  1. Declare @trgName varchar(500)
  2. Declare cur Cursor For Select [name] From sys.objects where type = 'tr'
  3. Open cur
  4. Fetch Next From cur Into @trgName
  5. While @@fetch_status = 0
  6. Begin
  7. Exec('drop trigger ' + @trgName)
  8. Fetch Next From cur Into @trgName
  9. End
  10. Close cur
  11. Deallocate cur
Trên đây là mình chia sẻ cách xóa tất cả Table, procedure, view và trigger. Trong nhiều trường hợp bạn chỉ muốn xóa những Table, procedure, view và trigger trong một giới hạn nào đó thì các bạn hãy điều chỉnh lại con trỏ lấy các dữ liệu nhé. Và các bạn đừng quên xác thực việc chắc chắn xóa bỏ chúng trước khi thực thi các câu lệnh trên.

Cảm ơn các bạn đã theo dõi. Nhớ đóng góp ý kiến tích cực cho mình nhé.

No comments:

Post a Comment