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
- EXEC sp_MSforeachtable @command1 = "DROP TABLE ?"
Xóa tất cả Procedure do người dùng định nghĩa
- Declare @procName varchar(500)
- Declare cur Cursor For Select [name] From sys.objects where type = 'p'
- Open cur
- Fetch Next From cur Into @procName
- While @@fetch_status = 0
- Begin
- Exec('drop procedure ' + @procName)
- Fetch Next From cur Into @procName
- End
- Close cur
- Deallocate cur
Xóa bỏ các view
- Declare @viewName varchar(500)
- Declare cur Cursor For Select [name] From sys.objects where type = 'v'
- Open cur
- Fetch Next From cur Into @viewName
- While @@fetch_status = 0
- Begin
- Exec('drop view ' + @viewName)
- Fetch Next From cur Into @viewName
- End
- Close cur
- Deallocate cur
Xóa các trigger
- Declare @trgName varchar(500)
- Declare cur Cursor For Select [name] From sys.objects where type = 'tr'
- Open cur
- Fetch Next From cur Into @trgName
- While @@fetch_status = 0
- Begin
- Exec('drop trigger ' + @trgName)
- Fetch Next From cur Into @trgName
- End
- Close cur
- 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