OBJECT_ID在SQL Server中做什么?
问题描述:
我想出来的OBJECT_ID
的使用,发现在MSDN the following entry:OBJECT_ID在SQL Server中做什么?
“返回架构范围内对象的数据库对象标识号。”
什么是数据库对象的识别号码,什么是架构范围的对象。似乎我比初始更困惑。
答
OBJECT_ID
用于识别系统基表中唯一的对象。
它是sys.objects
元数据视图使用的sys.sysschobjs
基表的主键,并出现在许多其他元数据视图中。例如sys.partitions
。如果你不查询这些视图,那么object_id
不是很有用,除非在检查对象存在时使用如下。
IF OBJECT_ID('T', 'U') IS NULL
/*Table T does not exist or no permissions*/
模式作用域对象是属于模式(例如表,视图,存储过程)的对象。 MSDN文章提供了DDL触发器中的非模式范围对象的示例。
它创建仍保存在sys.sysschobjs
这些
CREATE TRIGGER dbo.SomeTrigger /*Will Fail*/
ON DATABASE
FOR DROP_SYNONYM
AS
PRINT 'SomeTrigger'
非架构范围内的对象元数据时,但在sys.objects
视图显示不出来是尝试,并指定一个架构中的错误。