Sre*_*ree 6 sql t-sql sql-server sql-server-2005 object-identity
我正在尝试使用OBJECT_ID并在MSDN中找到以下条目:
"返回架构范围对象的数据库对象标识号."
什么是数据库对象标识号以及什么是架构范围对象.好像我比初始时更困惑.
用于OBJECT_ID在系统基表中唯一标识对象。
sys.sysschobjs它是元数据视图使用的基表 的主键sys.objects,并出现在许多其他元数据视图中。例如sys.partitions。如果您不查询这些视图,那么它object_id不是很有用,除非在检查对象存在时使用,如下所示。
IF OBJECT_ID('T', 'U') IS NULL
/*Table T does not exist or no permissions*/
Run Code Online (Sandbox Code Playgroud)
模式范围对象是属于模式的对象(例如表、视图、存储过程)。MSDN 文章提供了 DDL 触发器中非架构范围对象的示例。
创建这些时尝试指定模式是错误的
CREATE TRIGGER dbo.SomeTrigger /*Will Fail*/
ON DATABASE
FOR DROP_SYNONYM
AS
PRINT 'SomeTrigger'
Run Code Online (Sandbox Code Playgroud)
非架构范围的对象元数据仍然存储在视图中sys.sysschobjs,但不会显示在sys.objects视图中。
| 归档时间: |
|
| 查看次数: |
12184 次 |
| 最近记录: |