在SQL Server上,sys.objects表包含“Type”和“Type_Desc”属性。例如,对于我的一个DB:
SELECT DISTINCT [Type], Type_Desc
FROM Sys.Objects
ORDER BY [Type]
返回:
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
根据使用的类型,不同的DB会有不同的结果。
在某处有这些类型的完整列表吗? sys.objects没有约束指向我的表,sys.types包含数据类型。我搜索过SQL BOL但没有找到它。任何帮助,将不胜感激。
编辑:某些数据库仅使用这些类型的子集。例如,如果我有一个没有视图的数据库,当我像上面一样查询Sys.Objects时,结果中没有“V”行。我正在寻找SQL Server使用的所有可能类型和描述的列表。
答案 0 :(得分:36)
BOL有一个完整的清单,但你无法加入。
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
转到此信息的最佳SQL Server源:sys.objects (Transact-SQL)它没有提到要加入的任何表。我不能说我曾经注意到要加入任何系统表或视图的代码表。
我猜你必须创建自己的表或视图,或者只使用sys.objects中的Type_Desc属性。
答案 1 :(得分:2)
我意识到现在有点老了,但对于那些寻找答案的人来说,这就是我找到的。
select * from master..spt_values where type = 'O9T'
答案 2 :(得分:0)
对于SQL 2016,这是新的:
SP = Security Policy