[MSSQL] – Tìm hiểu sys.objects trong SQL Server


Chào các bạn,

Hôm nay mình giới thiệu với các bạn table hệ thống quan trọng trong SQL Server.
Đó là table sys.objects.
Table này là một trong những table quan trọng đối với các bạn làm DBA (Database Administrator) và các bạn chuyên gia lập trình T-SQL.

select * from sys.objects

2017-12-05_164008

Tại sao mình nói table này quan trọng, vì thông qua table này lập trình viên có thể viết những câu SQL động rất hữu ích, người quản trị CSDL cũng có thể quản lý các đối tượng có trong database của mình,

Ở đây các bạn lưu ý column : “Type”, column này xác định kiểu của đối tượng,
AF = Aggregate function (CLR)
C = CHECK constraint
D = DEFAULT (constraint or stand-alone)
F = FOREIGN KEY constraint
FN = SQL scalar function
FS = Assembly (CLR) scalar-function
FT = Assembly (CLR) table-valued function
IF = SQL inline table-valued function
IT = Internal table
P = SQL Stored Procedure
PC = Assembly (CLR) stored-procedure
PG = Plan guide
PK = PRIMARY KEY constraint
R = Rule (old-style, stand-alone)
RF = Replication-filter-procedure
S = System base table
SN = Synonym
SO = Sequence object
U = Table (user-defined)
V = View

Thông qua đó các bạn có thể filter theo type này
2017-12-05_164857

Với DBA, các bạn có thể xây dựng một câu lên T-SQL đơn giản điếm tất cả dòng của từng table có trong database.

use imsweb
go
create table #temp
(
TableName nvarchar(50),
RecordCount int,
Script nvarchar(1000)
);

insert into #temp
select Name,0,’Update #temp set RecordCount= (Select count(1) from [‘ + Name + ‘]) where TableName = ”’ + name +”” from sys.objects where type=’U’

DECLARE tables_cursor CURSOR
FOR select * from #temp
OPEN tables_cursor;
DECLARE @tablename nvarchar(50);
DECLARE @count nvarchar(20);
DECLARE @script nvarchar(1000);

FETCH NEXT FROM tables_cursor INTO @tablename, @count, @script;
WHILE (@@FETCH_STATUS -1)
BEGIN;
EXECUTE (@script);
FETCH NEXT FROM tables_cursor INTO @tablename, @count, @script;
END;
CLOSE tables_cursor;
DEALLOCATE tables_cursor;
GO
select * from #temp order by RecordCount desc
drop table #temp

2017-12-05_171430

Sau đây là chú thích chi tiết
1.Tạo table tạm lưu trữ thông tin
2017-12-05_171628

2. Tạo câu lệnh T-SQL động và insert vào table tạm
2017-12-05_171723

3.Lặp từng dòng trong table tạm và thực hiện câu lệnh T-SQL
2017-12-05_171841

 4. Xem kết quả
2017-12-05_172118.png

Hy vọng thông tin trên sẽ giúp ích cho các bạn.
Cuong Dang

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s