OBJECTPROPERTY用法整理
语法
OBJECTPROPERTY ( id , property ) |
参数
- id
-
是表示当前数据库中对象 ID 的表达式。id 的数据类型为 int,并假定为当前数据库上下文中的架构范围内的对象。
- property
-
一个表达式,提供 id 指定的对象的返回信息。property 可以是下列值之一:
注意:
除非另外注明,否则出现以下情况时,将返回 NULL:property 不是有效的属性名称,id 不是有效的对象 ID,id 不是指定的 property 支持的对象类型,或者调用方无权查看对象元数据。 属性名称 对象类型 说明和返回的值 CnstIsClustKey
约束
具有聚集索引的 PRIMARY KEY 约束。
1 = True
0 = False
CnstIsColumn
约束
单个列上的 CHECK、DEFAULT 或 FOREIGN KEY 约束。
1 = True
0 = False
CnstIsDeleteCascade
约束
具有 ON DELETE CASCADE 选项的 FOREIGN KEY 约束。
1 = True
0 = False
CnstIsDisabled
约束
禁用的约束。
1 = True
0 = False
CnstIsNonclustKey
约束
非聚集索引的 PRIMARY KEY 或 UNIQUE 约束。
1 = True
0 = False
CnstIsNotRepl
约束
使用 NOT FOR REPLICATION 关键字定义的约束。
1 = True
0 = False
CnstIsNotTrusted
约束
启用约束时未检查现有行,因此可能不是所有行都适用该约束。
1 = True
0 = False
CnstIsUpdateCascade
约束
具有 ON UPDATE CASCADE 选项的 FOREIGN KEY 约束。
1 = True
0 = False
ExecIsAfterTrigger
触发器
AFTER 触发器。
1 = True
0 = False
ExecIsAnsiNullsOn
Transact-SQL 函数、Transact-SQL 过程、Transact-SQL 触发器、视图
创建时的 ANSI_NULLS 设置。
1 = True
0 = False
ExecIsDeleteTrigger
触发器
DELETE 触发器。
1 = True
0 = False
ExecIsFirstDeleteTrigger
触发器
对表执行 DELETE 时触发的第一个触发器。
1 = True
0 = False
ExecIsFirstInsertTrigger
触发器
对表执行 INSERT 时触发的第一个触发器。
1 = True
0 = False
ExecIsFirstUpdateTrigger
触发器
对表执行 UPDATE 时触发的第一个触发器。
1 = True
0 = False
ExecIsInsertTrigger
触发器
INSERT 触发器。
1 = True
0 = False
ExecIsInsteadOfTrigger
触发器
INSTEAD OF 触发器。
1 = True
0 = False
ExecIsLastDeleteTrigger
触发器
对表执行 DELETE 时激发的最后一个触发器。
1 = True
0 = False
ExecIsLastInsertTrigger
触发器
对表执行 INSERT 时激发的最后一个触发器。
1 = True
0 = False
ExecIsLastUpdateTrigger
触发器
对表执行 UPDATE 时激发的最后一个触发器。
1 = True
0 = False
ExecIsQuotedIdentOn
Transact-SQL 函数、Transact-SQL 过程、Transact-SQL 触发器、视图
创建时的 QUOTED_IDENTIFIER 设置。
1 = True
0 = False
ExecIsStartup
过程
启动过程。
1 = True
0 = False
ExecIsTriggerDisabled
触发器
禁用的触发器。
1 = True
0 = False
ExecIsTriggerNotForRepl
触发器
定义为 NOT FOR REPLICATION 的触发器。
1 = True
0 = False
ExecIsUpdateTrigger
触发器
UPDATE 触发器。
1 = True
0 = False
HasAfterTrigger
表、视图
表或视图具有 AFTER 触发器。
1 = True
0 = False
HasDeleteTrigger
表、视图
表或视图具有 DELETE 触发器。
1 = True
0 = False
HasInsertTrigger
表、视图
表或视图具有 INSERT 触发器。
1 = True
0 = False
HasInsteadOfTrigger
表、视图
表或视图具有 INSTEAD OF 触发器。
1 = True
0 = False
HasUpdateTrigger
表、视图
表或视图具有 UPDATE 触发器。
1 = True
0 = False
IsAnsiNullsOn
Transact-SQL 函数、Transact-SQL 过程、表、Transact-SQL 触发器、视图
指定表的 ANSI NULLS 选项设置为 ON。这表示所有对空值的比较都取值为 UNKNOWN。只要表存在,此设置将应用于表定义中的所有表达式,包括计算列和约束。
1 = True
0 = False
IsCheckCnst
架构范围内的任何对象
CHECK 约束。
1 = True
0 = False
IsConstraint
架构范围内的任何对象
列或表的单列 CHECK、DEFAULT 或 FOREIGN KEY 约束。
1 = True
0 = False
IsDefault
架构范围内的任何对象
绑定的默认值。
1 = True
0 = False
IsDefaultCnst
架构范围内的任何对象
DEFAULT 约束。
1 = True
0 = False
IsDeterministic
函数、视图
函数或视图的确定性属性。
1 = 确定
0 = 不确定
IsEncrypted
Transact-SQL 函数、Transact-SQL 过程、表、Transact-SQL 触发器和视图
指示模块语句的原始文本已转换为模糊格式。模糊代码的输出在 SQL Server 2005 的任何目录视图中都不能直接显示。对系统表或数据库文件没有访问权限的用户不能检索模糊文本。但是,能够通过 DAC 端口访问系统表的用户或能够直接访问数据库文件的用户可以检索此文本。此外,能够向服务器进程附加调试器的用户可在运行时从内存中检索原始过程。
1 = 已加密
0 = 未加密
基本数据类型:int
IsExecuted
架构范围内的任何对象
可执行对象(视图、过程、函数或触发器)。
1 = True
0 = False
IsExtendedProc
架构范围内的任何对象
扩展过程。
1 = True
0 = False
IsForeignKey
架构范围内的任何对象
FOREIGN KEY 约束。
1 = True
0 = False
IsIndexed
表、视图
包含索引的表或视图。
1 = True
0 = False
IsIndexable
表、视图
可以创建索引的表或视图。
1 = True
0 = False
IsInlineFunction
函数
内联函数。
1 = 内联函数
0 = 非内联函数
IsMSShipped
架构范围内的任何对象
安装 SQL Server 过程中创建的对象。
1 = True
0 = False
IsPrimaryKey
架构范围内的任何对象
PRIMARY KEY 约束。
1 = True
0 = False
NULL = 非函数,或对象 ID 无效。
IsProcedure
架构范围内的任何对象
过程。
1 = True
0 = False
IsQuotedIdentOn
Transact-SQL 函数、Transact-SQL 过程、表、Transact-SQL 触发器、视图、CHECK 约束、DEFAULT 定义
指定对象的引号标识符设置为 ON。这表示用英文双引号分隔对象定义中涉及的所有表达式中的标识符。
1 = ON
0 = OFF
IsQueue
架构范围内的任何对象
Service Broker 队列
1 = True
0 = False
IsReplProc
架构范围内的任何对象
复制过程。
1 = True
0 = False
IsRule
架构范围内的任何对象
绑定规则。
1 = True
0 = False
IsScalarFunction
函数
标量值函数。
1 = 标量值函数
0 = 非标量值函数
IsSchemaBound
函数、视图
使用 SCHEMABINDING 创建的绑定到架构的函数或视图。
1 = 绑定到架构
0 = 不绑定架构。
IsSystemTable
表
系统表。
1 = True
0 = False
IsTable
表
表。
1 = True
0 = False
IsTableFunction
函数
表值函数。
1 = 表值函数
0 = 非表值函数
IsTrigger
架构范围内的任何对象
触发器。
1 = True
0 = False
IsUniqueCnst
架构范围内的任何对象
UNIQUE 约束。
1 = True
0 = False
IsUserTable
表
用户定义的表。
1 = True
0 = False
IsView
视图
视图。
1 = True
0 = False
OwnerId
架构范围内的任何对象
对象的所有者。
注意: 架构所有者不一定是对象所有者。例如,子对象(其 parent_object_id 为非空值)将始终返回与父对象相同的所有者 ID。 Nonnull = 对象所有者的数据库用户 ID。
TableDeleteTrigger
表
表具有 DELETE 触发器。
>1 = 指定类型的第一个触发器的 ID。
TableDeleteTriggerCount
表
表具有指定数目的 DELETE 触发器。
>0 = DELETE 触发器数目。
TableFullTextMergeStatus
表
表所具有的全文索引当前是否正在合并。
0 = 表没有全文索引,或者全文索引未在合并。
1 = 全文索引正在合并。
TableFullTextBackgroundUpdateIndexOn
表
表已启用全文后台更新索引(自动更改跟踪)。
1 = TRUE
0 = FALSE
TableFulltextCatalogId
表
表的全文索引数据所在的全文目录的 ID。
非零 = 全文目录 ID,它与全文索引表中标识行的唯一索引相关。
0 = 表没有全文索引。
TableFulltextChangeTrackingOn
表
表已启用全文更改跟踪。
1 = TRUE
0 = FALSE
TableFulltextDocsProcessed
表
自开始全文索引以来所处理的行数。在为进行全文搜索而正在编制索引的表中,将一个行的所有列视为要编制索引的文档的一部分。
0 = 没有完成的活动爬网或全文索引。
> 0 = 以下选项之一:
- 自从开始完整、增量或手动更改跟踪填充以来,由插入或更新操作处理的文档数。
- 自从执行以下操作以来由插入或更新操作处理的行数:启用具有后台更新索引填充功能的更改跟踪、更改全文索引架构、重建全文目录或重新启动 SQL Server 的实例等。
NULL = 表没有全文索引。
注意: 此属性不监视已删除行,也不对已删除行进行计数。 TableFulltextFailCount
表
全文搜索未编制索引的行数。
0 = 填充已完成。
> 0 = 以下选项之一:
- 自从开始完整、增量和手动更新更改跟踪填充以来未编制索引的文档数。
- 对于具有后台更新索引功能的更改跟踪,则为自从开始填充或重新启动填充以来未编制索引的行数。这可能由架构更改、目录重建、服务器重新启动等引起。
NULL = 表没有全文索引。
TableFulltextItemCount
表
成功编制了全文索引的行数。
TableFulltextKeyColumn
表
与参与全文索引定义的单列唯一索引关联的列的 ID。
0 = 表没有全文索引。
TableFulltextPendingChanges
表
要处理的挂起更改跟踪项的数目。
0 = 未启用更改跟踪。
NULL = 表没有全文索引。
TableFulltextPopulateStatus
表
0 = 空闲。
1 = 正在进行完全填充。
2 = 正在进行增量填充。
3 = 正在传播所跟踪的更改。
4 = 正在进行后台更新索引(例如,自动跟踪更改)。
5 = 全文索引已中止或暂停。
TableHasActiveFulltextIndex
表
表具有活动的全文索引。
1 = True
0 = False
TableHasCheckCnst
表
表具有 CHECK 约束。
1 = True
0 = False
TableHasClustIndex
表
表具有聚集索引。
1 = True
0 = False
TableHasDefaultCnst
表
表具有 DEFAULT 约束。
1 = True
0 = False
TableHasDeleteTrigger
表
表具有 DELETE 触发器。
1 = True
0 = False
TableHasForeignKey
表
表具有 FOREIGN KEY 约束。
1 = True
0 = False
TableHasForeignRef
表
表由 FOREIGN KEY 约束引用。
1 = True
0 = False
TableHasIdentity
表
表具有标识列。
1 = True
0 = False
TableHasIndex
表
表具有任意类型的索引。
1 = True
0 = False
TableHasInsertTrigger
表
对象具有 INSERT 触发器。
1 = True
0 = False
TableHasNonclustIndex
表
表有非聚集索引。
1 = True
0 = False
TableHasPrimaryKey
表
表具有主键。
1 = True
0 = False
TableHasRowGuidCol
表
表的 uniqueidentifier 列具有 ROWGUIDCOL。
1 = True
0 = False
TableHasTextImage
表
表具有 text、ntext 或 image 列。
1 = True
0 = False
TableHasTimestamp
表
表具有 timestamp 列。
1 = True
0 = False
TableHasUniqueCnst
表
表具有 UNIQUE 约束。
1 = True
0 = False
TableHasUpdateTrigger
表
对象有 UPDATE 触发器。
1 = True
0 = False
TableHasVarDecimalStorageFormat
表
为 vardecimal 存储格式启用表。
1 = True
0 = False
TableInsertTrigger
表
表具有 INSERT 触发器。
>1 = 指定类型的第一个触发器的 ID。
TableInsertTriggerCount
表
表有指定数目的 INSERT 触发器。
>0 = INSERT 触发器的个数。
TableIsFake
表
表不是真实的表。它将由 SQL Server 数据库引擎根据需要在内部进行具体化。
1 = True
0 = False
TableIsLockedOnBulkLoad
表
bcp 或 BULK INSERT 作业导致表被锁。
1 = True
0 = False
TableIsPinned
表
驻留表以将其保留在数据缓存中。
0 = False
SQL Server 2005 及更高版本不支持此功能。
TableTextInRowLimit
表
text in row 允许的最大字节数。
如果未设置 text in row 选项,则返回 0。
TableUpdateTrigger
表
表具有 UPDATE 触发器。
>1 = 指定类型的第一个触发器的 ID。
TableUpdateTriggerCount
表
表有指定数目的 UPDATE 触发器。
> 0 = UPDATE 触发器的个数。
TableHasColumnSet
表
表具有列集。
0 = False
1 = True
有关详细信息,请参阅使用列集。
返回类型
int
异常
出现错误时或调用方没有权限查看对象时,将返回 NULL。
用户只能查看符合如下条件的安全对象的元数据:该安全对象为该用户所有,或已授予该用户对该安全对象的权限。这意味着,如果用户对对象没有任何权限,则元数据生成的内置函数(如 OBJECTPROPERTY)可能返回 NULL。有关详细信息,请参阅元数据可见性配置和元数据可见性故障排除。
备注
数据库引擎假定 object_id 位于当前数据库上下文中。引用另一个数据库中的 object_id 的查询将返回 NULL 或返回不正确的结果。例如,在下面的查询中,当前数据库上下文为 master
数据库。数据库引擎将尽量返回该数据库(而不是在查询中指定的数据库)中指定的 object_id 的属性值。由于视图 vEmployee
不在 master
数据库中,该查询将返回不正确的结果。
USE master; |
OBJECTPROPERTY(view_id, 'IsIndexable')可能会耗费大量的计算机资源,这是因为处理 IsIndexable 属性需要分析视图定义、规范化和局部优化。尽管 IsIndexable 属性可以标识出能编制索引的表或视图,但在实际创建索引时,如果不能满足某些索引键要求,创建过程仍然可能会失败。有关详细信息,请参阅 CREATE INDEX (Transact-SQL)。
如果至少添加了一个表列用于索引,则 OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex')将返回值 1 (true)。只要添加了用于索引的第一列后,全文索引即可用于填充。
创建表后,表的元数据中 QUOTED IDENTIFIER 选项始终是 ON,即使在创建表时将该选项设置为 OFF。因此,OBJECTPROPERTY(table_id, 'IsQuotedIdentOn')将始终返回值 1 (true)。
示例
A. 验证某个对象是否为表
以下示例将测试 UnitMeasure
是否为 AdventureWorks
数据库中的表。
USE AdventureWorks; |
B. 验证用户定义的标量值函数是否为确定性函数
以下示例将测试用户定义的标量值函数 ufnGetProductDealerPrice
(该函数返回 money)是不是一个确定性函数。
USE AdventureWorks; |
结果集显示 ufnGetProductDealerPrice
是一个确定性函数。
----- |
C. 查找属于特定架构的对象
以下示例使用 SchemaId
属性返回属于架构 Production
的所有对象。
USE AdventureWorks; |
OBJECTPROPERTY用法整理的更多相关文章
- Spring JdbcTemplate用法整理
Spring JdbcTemplate用法整理: xml: <?xml version="1.0" encoding="UTF-8"?> <b ...
- linq用法整理
linq用法整理 普通查询 var highScores = from student in students where student.ExamScores[exam] > score se ...
- linux学习:特殊符号,数学运算,图像与数组与部分终端命令用法整理
指令:let.expr.array.convert.tput.date.read.md5.ln.apt.系统信息 一:特殊符号用法整理 系统变量 $# 是传给脚本的参数个数 $0 是脚本本身的名字 $ ...
- #ifndef#define#endif的用法(整理)
[转] #ifndef#define#endif的用法(整理) 原作者:icwk 文件中的#ifndef 头件的中的#ifndef,这是一个很关键的东西.比如你有两个C文件,这两个C文件都in ...
- Google Guava 库用法整理<转>
参考: http://codemunchies.com/2009/10/beautiful-code-with-google-collections-guava-and-static-imports- ...
- MySQL中使用SHOW PROFILE命令分析性能的用法整理(配合explain效果更好,可以作为优化周期性检查)
这篇文章主要介绍了MySQL中使用show profile命令分析性能的用法整理,show profiles是数据库性能优化的常用命令,需要的朋友可以参考下 show profile是由Jerem ...
- Android spannableStringBuilder用法整理
Android spannableStringBuilder用法整理 分类: Android开发2013-11-29 10:58 5009人阅读 评论(0) 收藏 举报 Androidspannabl ...
- #Javascript:this用法整理
常用Javascript的人都知道,[this這個關鍵字在一個函式內究竟指向誰]的這個問題很令人頭大,本人在這裡整理了一下Javascript中this的指向的五種不同情況,其中前三種屬於基本的情況, ...
- day67 ORM模型之高阶用法整理,聚合,分组查询以及F和Q用法,附练习题整理
归纳总结的笔记: day67 ORM 特殊的语法 一个简单的语法 --翻译成--> SQL语句 语法: 1. 操作数据库表 创建表.删除表.修改表 2. 操作数据库行 增.删.改.查 怎么连数据 ...
随机推荐
- bzoj 4571 美味 —— 主席树
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4571 区间找异或值最大,还带加法,可以用主席树: 可以按位考虑,然后通过加上之前已经有的答案 ...
- angularJs 之deferred
angularJs 对promise的封装 var deferred = $q.defer(); deferred.promise.then(function(){ var result = {} c ...
- 大数据技术之_25_手机APP信息统计系统项目_01_APP 数据生成模块 + 数据收集模块 + 数据处理模块框架搭建 + 业务需求处理 + 数据展示模块 +项目总结 + 问题总结
一 项目概述1.1 角色1.2 业务术语1.3 项目效果展示二 项目需求三 项目概要3.1 项目技术架构3.2 项目目录结构3.3 项目技术选型3.4 项目整体集群规划3.5 创建项目工程四 APP ...
- 使用Docker Compose编排微服务
一般微服务架构会包含若干个微服务,而每个微服务可以有多个实例,如果每个微服务都有手动启停,那么效率就很低.维护量比较大. 所以我们可以使用Docker Compose来轻松.高效地管理容器. 一.安装 ...
- 查找MySQL和 SQL sever data
MySql SQL server
- 《Windows核心编程系列》九谈谈同步设备IO与异步设备IO之同步设备IO
同步设备IO 所谓同步IO是指线程在发起IO请求后会被挂起,IO完成后继续执行. 异步IO是指:线程发起IO请求后并不会挂起而是继续执行.IO完毕后会得到设备的通知.而IO完成端口就是实现这种通知的很 ...
- ROS学习笔记九:ROS工具
ROS有各种工具可以帮助用户使用ROS.应该指出,这些GUI工具是对输入型命令工具的补充.如果包括ROS用户个人发布的工具,那么ROS工具的数量很庞大.其中,本文讨论的工具是对于ROS编程非常有用的辅 ...
- [poj3744] Scout YYF I【概率dp 数学期望】
传送门:http://poj.org/problem?id=3744 令f(i)表示到i,安全的概率.则f(i) = f(i - 1) * p + f(i - 2) * (1 - p),若i位置有地雷 ...
- DP Codeforces Round #260 (Div. 1) A. Boredom
题目传送门 /* 题意:选择a[k]然后a[k]-1和a[k]+1的全部删除,得到点数a[k],问最大点数 DP:状态转移方程:dp[i] = max (dp[i-1], dp[i-2] + (ll) ...
- Kuskal/Prim POJ 1789 Truck History
题目传送门 题意:给出n个长度为7的字符串,一个字符串到另一个的距离为不同的字符数,问所有连通的最小代价是多少 分析:Kuskal/Prim: 先用并查集做,简单好写,然而效率并不高,稠密图应该用Pr ...