我在Itzik Ben-Gan的“TSQL Fundamentals”一书中遇到过以下代码。
我知道函数OBJECT_ID
用于检查特定对象是否存在。但是我对它的第二个参数N'U'
感到有点困惑。
我查了MSDN documentation,它说第二个参数代表对象类型,但我仍然不明白N'U'
代表什么。
有人可以向我解释它实际上代表什么吗?
IF OBJECT_ID(N'dbo.Employees', N'U') IS NOT NULL
BEGIN
IF OBJECTPROPERTY(OBJECT_ID(N'dbo.Employees', N'U'), N'TableTemporalType') = 2
ALTER TABLE dbo.Employees SET(SYSTEM_VERSIONING = OFF);
答案 0 :(得分:5)
如果您点击链接到types: sys.objects
的页面中的链接U =表(用户定义)
完整列表(截至2017-01-16)
对象类型:
AF =聚合函数(CLR)
C = CHECK约束
D = DEFAULT(约束或独立)
F = FOREIGN KEY约束
FN = SQL标量函数
FS =汇编(CLR)标量函数
FT =汇编(CLR)表值函数
IF = SQL内联表值函数
IT =内部表
P = SQL存储过程
PC =汇编(CLR)存储过程
PG =计划指南
PK = PRIMARY KEY约束
R =规则(旧式,独立)
RF =复制过滤器程序
S =系统基表
SN =同义词
SO =序列对象
适用于:SQL Server 2012到SQL Server 2016。
SQ =服务队列
TA =汇编(CLR)DML触发器
TF = SQL table-valued-function
TR = SQL DML触发器
TT =表格类型
U =表(用户定义)
UQ = UNIQUE约束
V =查看
X =扩展存储过程
适用于:SQL Server 2016到SQL Server 2016,Azure SQL 数据库,Azure SQL数据仓库,并行数据仓库。
ET =外部表
答案 1 :(得分:1)
SELECT DISTINCT type,type_desc FROM sys.objects
type type_desc ---- ------------------------------------------------------------ TT TYPE_TABLE FN SQL_SCALAR_FUNCTION SN SYNONYM IF SQL_INLINE_TABLE_VALUED_FUNCTION UQ UNIQUE_CONSTRAINT SQ SERVICE_QUEUE F FOREIGN_KEY_CONSTRAINT U USER_TABLE D DEFAULT_CONSTRAINT PK PRIMARY_KEY_CONSTRAINT V VIEW S SYSTEM_TABLE IT INTERNAL_TABLE P SQL_STORED_PROCEDURE TF SQL_TABLE_VALUED_FUNCTION