2010-05-25 38 views
13

Trên SQL Server, bảng sys.objects bao gồm các thuộc tính "Type" và "Type_Desc". Ví dụ, đối với một trong những DBS của tôi:Giải thích các loại mã trong sys.objects trong SQL Server

SELECT DISTINCT [Type], Type_Desc 
FROM Sys.Objects 
ORDER BY [Type] 

Returns:

 
C  CHECK_CONSTRAINT 
D  DEFAULT_CONSTRAINT 
F  FOREIGN_KEY_CONSTRAINT 
FN  SQL_SCALAR_FUNCTION 
FS  CLR_SCALAR_FUNCTION 
IT  INTERNAL_TABLE 
P  SQL_STORED_PROCEDURE 
PK  PRIMARY_KEY_CONSTRAINT 
S  SYSTEM_TABLE 
SQ  SERVICE_QUEUE 
TR  SQL_TRIGGER 
U  USER_TABLE 
UQ  UNIQUE_CONSTRAINT 
V  VIEW 

DBS khác nhau có những kết quả khác nhau, tùy thuộc vào những loại được sử dụng.

Có danh sách đầy đủ các loại này ở đâu đó không? Không có một ràng buộc nào về sys.objects chỉ cho tôi vào bảng này, và sys.types chứa các kiểu dữ liệu. Tôi đã tìm kiếm SQL BOL nhưng không tìm thấy nó. Bất kỳ trợ giúp sẽ được đánh giá cao.

EDIT: Một số DB chỉ sử dụng một tập hợp con các loại này. Ví dụ: nếu tôi có cơ sở dữ liệu không có chế độ xem, khi tôi truy vấn Sys.Objects như trên, không có hàng "V" trong kết quả. Tôi đang tìm một danh sách tất cả các loại và mô tả có thể được sử dụng bởi SQL Server.

Trả lời

35

BOL có danh sách đầy đủ nhưng bạn không thể tham gia vào đó.

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 
SQ = Service queue 
TA = Assembly (CLR) DML trigger 
TF = SQL table-valued-function 
TR = SQL DML trigger 
TT = Table type 
U = Table (user-defined) 
UQ = UNIQUE constraint 
V = View 
X = Extended stored procedure 

Đi tới nguồn máy chủ SQL tốt nhất cho thông tin này: sys.objects (Transact-SQL) nó không đề cập đến bất kỳ bảng nào để tham gia. Tôi không thể nói rằng tôi đã bao giờ nhận thấy một bảng mã để tham gia cho bất kỳ bảng hệ thống hoặc quan điểm.

Tôi đoán bạn sẽ phải tạo bảng hoặc chế độ xem của riêng bạn hoặc chỉ sử dụng thuộc tính Type_Desc trong sys.objects.

0

Đối với SQL 2016 này là mới:

SP = Security Policy 
1

Tôi nhận ra điều này là một chút cũ bây giờ, nhưng đối với những người tìm kiếm một câu trả lời, đây là những gì tôi tìm thấy.

select * from master..spt_values where type = 'O9T' 
Các vấn đề liên quan