Nếu bạn là developer thì chắc chắn rằng bạn phải biết [URL="http://msdn.microsoft.com/en-us/sqlserver/default.aspx"]
SQLServer[/URL] ! (Hiện tại [URL="http://msdn.microsoft.com/en-us/sqlserver/default.aspx"]
SQLServer[/URL] đã có đến phiên bản [URL="http://www.microsoft.com/sqlserver/2008/en/us/trial-software.aspx"]
SQLServer 2008[/URL]). Tuy nhiên ứng với phiên bản [URL="http://msdn.microsoft.com/en-us/sqlserver/default.aspx"]
SQLServer[/URL] nào [URL="http://www.microsoft.com/"]
Microsoft[/URL] đều đưa ra các [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] ([URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
System stored procedures[/URL])
Bài viết này mình đề cập đến
5 [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] theo mình nghĩ là mỗi developer khi làm việc với [URL="http://msdn.microsoft.com/en-us/sqlserver/default.aspx"]
SQLServer[/URL] đều phải biết.
[URL="http://msdn.microsoft.com/en-us/library/aa933429%28SQL.80%29.aspx"]1. sp_help[/URL] a. Mục đích Đây là [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] giúp bạn
tra cứu nhanh về thông tin của các đối tượng (objects) có trong database. Như là: xem cấu trúc của 1 bảng, xem bảng này có phụ thuộc bảng nào, xem bảng này có [URL="http://en.wikipedia.org/wiki/Primary_key"]
Primary Key[/URL] là [URL="http://en.wikipedia.org/wiki/Foreign_key"]
Foregin Key[/URL] của table nào, …..
b. Cú pháp
- sp_help : để lấy tất cả các thông tin về tất cả các đối tượng trong Database
- sp_help : để lấy tất cả các thông tin cụ thể của đối tượng (thông số tên đối tượng truyền vào) trong Database
c. Ví dụ
- sp_help —> Khi đó bạn sẽ thấy giống màn hình sau:
[You must be registered and logged in to see this image.]
- sp_help ‘TB_TacGia’—> Khi cần lấy thông tin của table TB_TacGia trong Database: QuanLyThuVien.
[URL="http://msdn.microsoft.com/en-us/library/ms176112.aspx"]2. sp_helptext[/URL] a. Mục đích Đây là [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] giúp bạn
tra cứu định nghĩa các đối tượng: [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL], [URL="http://en.wikipedia.org/wiki/Stored_procedure"]
store procedure do người dùng định nghĩa[/URL], [URL="http://msdn.microsoft.com/en-us/library/aa214363%28SQL.80%29.aspx"]
hàm do người dùng định nghĩa[/URL], [URL="http://msdn.microsoft.com/en-us/library/aa258254%28SQL.80%29.aspx"]
trigger[/URL], ….
b. Cú pháp
- sp_helptext : để lấy định nghĩa của đối tượng (thông số tên đối tượng truyền vào) trong Database
c. Ví dụ
- sp_helptext ‘dbo.spTB_TacGia_TruyVan’: để lấy định nghĩa của [URL="http://en.wikipedia.org/wiki/Stored_procedure"]store procedure do người dùng định nghĩa[/URL]: spTB_TacGia_TruyVan trong Database: QuanLyThuVien. Khi đó bạn sẽ thấy màn hình như sau
[URL="http://weblogs.asp.net/nunogomes/archive/2008/08/19/sql-server-undocumented-stored-procedure-sp-msforeachtable.aspx"]3. sp_MSforeachtable[/URL] a. Mục đích Đây là [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] giúp bạn
duyệt qua tất cả các table trong Database. Khi đó bạn dùng kí tự ? để làm kí tự đại diện cho table. Ví dụ cơ bản nhất khi dùng [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] này là đếm số dòng của tất cả các bảng trong Database
b. Cú pháp
- sp_MSforeachtable —> Câu lệnh SQL bắt buộc phải chứ kí tự ? làm kí tự đại diện cho tên table
c. Ví dụ
- sp_MSforeachtable ‘SELECT ”?”, COUNT(*) FROM ?’ : Đếm số dòng của tất cả các table trong Database: QuanLyThuVien. Khi đó bạn sẽ thấy màn hình như sau
[URL="http://msdn.microsoft.com/en-us/library/ms189487.aspx"]4. sp_depends[/URL] a. Mục đích Đây là [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] giúp bạn
liệt kê các [URL="http://msdn.microsoft.com/en-us/library/aa258253%28SQL.80%29.aspx"]
Views[/URL]
, [URL="http://en.wikipedia.org/wiki/Stored_procedure"]
store procedure do người dùng định nghĩa[/URL]
, [URL="http://msdn.microsoft.com/en-us/library/aa214363%28SQL.80%29.aspx"]
hàm do người dùng định nghĩa[/URL]
, [URL="http://msdn.microsoft.com/en-us/library/aa258254%28SQL.80%29.aspx"]
trigger[/URL]
, … có phụ thuộc vào tên đối tượng truyền vào
b. Cú pháp
- sp_depends –> tìm các đối tượng khác có phụ thuộc với tên đối tượng được của thông số truyền vào
c. Ví dụ
- sp_depends ‘Person.Address’ -> tìm các đối tượng khác phụ thuộc vào table: TB_TacGia trong Database: QuanLyThuVien. Khi đó ta sẽ thấy như màn hình sau
[URL="http://msdn.microsoft.com/en-us/library/ms188776.aspx"]5. sp_spaceused[/URL] a. Mục đích Đây là [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]
store procedure hệ thống[/URL] giúp bạn
lấy kích thước của Database hoặc kích thước của một đối tượng trong Database.
b. Cú pháp
- sp_spaceused —> lấy kích thước của Database (là Database mà ta đang thực thi [URL="http://msdn.microsoft.com/en-us/library/ms187961.aspx"]store procedure hệ thống[/URL] này)
- sp_spaceused —> lấy kích thước của 1 đối tượng cụ thể được truyền vào từ thông số tên đối tượng
c. Ví dụ
- sp_spaceused —> lấy kích thước của Database: QuanLyThuVien . Khi đó bạn sẽ thấy màn hình như sau
sp_spaceused ‘Person.Address’ —> lấy kích thước của table:
TB_TacGia trong Database:
QuanLyThuVien Khi đó bạn sẽ thấy màn hình như sau
Và cuối cùng, bạn hãy thực hiện lệnh sau
sp_MSforeachtable ‘execute sp_spaceused @objname = ”?” ‘
Nó là sự kết hợp của 2 lệnh: sp_MSforeachtable, sp_spaceused mình vừa giới thiệu ở trên và cho biết nó làm mục đích gì ?
Chúc bạn thành công Bài tham khảo từ Blog của Lê Văn Phước – [URL="http://phuocle.webhop.net/"][You must be registered and logged in to see this link.][/URL]