对象ID在SQL Server中的作用是什么?
我正在试用对象ID在SQL Server中的作用是什么?,sql,sql-server,tsql,sql-server-2005,object-identity,Sql,Sql Server,Tsql,Sql Server 2005,Object Identity,我正在试用OBJECT\u ID的用法,可以在MSDN中找到: “返回架构范围对象的数据库对象标识号。” 什么是数据库对象标识号,什么是架构范围的对象。似乎我比初始值更困惑。对象ID用于在系统基表中唯一地标识对象 它是sys.objects元数据视图使用的sys.sysschobjs基表的主键,并出现在许多其他元数据视图中。e、 gsys.partitions。如果您不查询这些视图,那么对象\u id不是很有用,除非在检查对象是否存在时使用,如下所示 IF OBJECT_ID('T', 'U')
OBJECT\u ID
的用法,可以在MSDN中找到:
“返回架构范围对象的数据库对象标识号。”
什么是数据库对象标识号,什么是架构范围的对象。似乎我比初始值更困惑。对象ID用于在系统基表中唯一地标识对象 它是
sys.objects
元数据视图使用的sys.sysschobjs
基表的主键,并出现在许多其他元数据视图中。e、 gsys.partitions
。如果您不查询这些视图,那么对象\u id
不是很有用,除非在检查对象是否存在时使用,如下所示
IF OBJECT_ID('T', 'U') IS NULL
/*Table T does not exist or no permissions*/
模式范围的对象是属于模式(例如表、视图、存储过程)的对象。MSDN文章给出了DDL触发器中非模式范围对象的示例
在创建这些架构时,尝试指定架构是错误的
CREATE TRIGGER dbo.SomeTrigger /*Will Fail*/
ON DATABASE
FOR DROP_SYNONYM
AS
PRINT 'SomeTrigger'
非架构范围的对象元数据仍存储在sys.sysschobjs
中,但不会显示在sys.objects
视图中