外键,check,索引等,根据ID来检索详细信息
OBJECTPROPERTY
返回当前数据库中对象的有关信息。
注:这个函也比较有用
语法
OBJECTPROPERTY ( id , property )
参数
id
一个表达式,包含当前数据库中某个对象的 ID。id 的数据类型是 int。
Property
一个表达式,包含针对由 id 指定的对象将要返回的信息。Property 可以是下面这些值中的一个。
说明 除非加以注释,否则,如果 property 是无效的属性名,则返回 NULL。
|
属性名称 |
对象类型 |
描述和返回的值 |
|
CnstIsClustKey |
约束 |
带有聚集索引的主键。 1 = True |
|
CnstIsColumn |
约束 |
COLUMN 约束。 1 = True |
|
CnstIsDeleteCascade |
约束 |
带有 ON DELETE CASCADE选项的外键约束。 |
|
CnstIsDisabled |
约束 |
禁用的约束。 1 = True |
|
CnstIsNonclustKey |
约束 |
带有非聚集索引的主键。 1 = True |
|
CnstIsNotTrusted |
约束 |
启用约束时未检查现有行,所以可能不是所有行都受约束的控制。 1 = True |
|
CnstIsNotRepl |
约束 |
使用 NOT FOR REPLICATION 关键字定义约束。 |
|
CnstIsUpdateCascade |
约束 |
带有 ON UPDATE CASCADE选项的外键约束。 |
|
ExecIsAfterTrigger |
触发器 |
AFTER 触发器。 |
|
ExecIsAnsiNullsOn |
过程、触发器、视图 |
创建时的 ANSI_NULLS 设置。 1 = True |
|
ExecIsDeleteTrigger |
触发器 |
DELETE 触发器。 1 = True |
|
ExecIsFirstDeleteTrigger |
触发器 |
对表执行 DELETE 时触发的第一个触发器。 |
|
ExecIsFirstInsertTrigger |
触发器 |
对表执行 INSERT 时触发的第一个触发器。 |
|
ExecIsFirstUpdateTrigger |
触发器 |
对表执行 UPDATE 时触发的第一个触发器。 |
|
ExecIsInsertTrigger |
触发器 |
INSERT 触发器。 1 = True |
|
ExecIsInsteadOfTrigger |
触发器 |
INSTEAD OF 触发器。 |
|
ExecIsLastDeleteTrigger |
触发器 |
对表执行 DELETE 时触发的最后一个触发器。 |
|
ExecIsLastInsertTrigger |
触发器 |
对表执行 INSERT 时触发的最后一个触发器。 |
|
ExecIsLastUpdateTrigger |
触发器 |
对表执行 UPDATE 时触发的最后一个触发器。 |
|
ExecIsQuotedIdentOn |
过程、触发器、视图 |
创建时的QUOTED_IDENTIFIER 设置。 1 = True |
|
ExecIsStartup |
过程 |
启动过程。 1 = True |
|
ExecIsTriggerDisabled |
触发器 |
禁用的触发器。 1 = True |
|
ExecIsUpdateTrigger |
触发器 |
UPDATE 触发器。 1 = True |
|
HasAfterTrigger |
表,视图 |
表或视图具有 AFTER 触发器。 1 = True |
|
HasInsertTrigger |
表,视图 |
表或视图具有 INSERT 触发器。 1 = True |
|
HasInsteadOfTrigger |
表、视图 |
表或视图具有 INSTEAD OF 触发器。 1 = True |
|
HasUpdateTrigger |
表、视图 |
表或视图具有 UPDATE 触发器。 1 = True |
|
IsAnsiNullsOn |
函数、过程、表、触发器、视图 |
指定表的 ANSI NULLS 选项设置为 ON,表示所有与空值的比较都取值为UNKNOWN。只要表存在,该设置就应用于表定义中的所有表达式,包括计算列和约束。 1 = ON |
|
IsCheckCnst |
任何 |
CHECK 约束。 1 = True |
|
IsConstraint |
任何 |
约束。 1 = True |
|
IsDefault |
任何 |
绑定的默认值。 1 = True |
|
IsDefaultCnst |
任何 |
DEFAULT 约束。 1 = True |
|
IsDeterministic |
函数、视图 |
函数的确定性属性。只适用于标量值及表值函数。 1 = 可确定的 |
|
IsExecuted |
任何 |
指定执行该对象的方式(视图、过程或触发器)。 1 = True |
|
IsExtendedProc |
任何 |
扩展过程。 1 = True |
|
IsForeignKey |
任何 |
FOREIGN KEY 约束。 1 = True |
|
IsIndexed |
表、视图 |
带有索引的表或视图。 |
|
IsIndexable |
表、视图 |
可以创建索引的表或视图。 |
|
IsInlineFunction |
函数 |
内嵌函数。 1 = 内嵌函数 |
|
IsMSShipped |
任何 |
在安装 Microsoft® SQL Server™ 2000 的过程中创建的对象。 1 = True |
|
IsPrimaryKey |
任何 |
PRIMARY KEY 约束。 1 = True |
|
IsProcedure |
任何 |
过程。 1 = True |
|
IsQuotedIdentOn |
函数、过程、表、触发器、视图 |
指定表的被引用标识符设置为 ON,表示在表定义所涉及的所有表达式中,双引号标记分隔标识符。 1 = ON |
|
IsReplProc |
任何 |
复制过程。 1 = True |
|
IsRule |
任何 |
绑定的规则。 1 = True |
|
IsScalarFunction |
函数 |
标量值函数。 1 = 标量值 |
|
IsSchemaBound |
函数,视图 |
使用 SCHEMABINDING 创建的架构绑定函数或视图。 1 = 架构绑定 |
|
IsSystemTable |
表 |
系统表。 1 = True |
|
IsTable |
表 |
表。 1 = True |
|
IsTableFunction |
函数 |
表值函数。 1 = 表值 |
|
IsTrigger |
任何 |
触发器。 1 = True |
|
IsUniqueCnst |
任何 |
UNIQUE 约束。 1 = True |
|
IsUserTable |
表 |
用户定义的表。 1 = True |
|
IsView |
视图 |
视图。 1 = True |
|
OwnerId |
任何 |
对象的所有者。 Nonnull = 对象所有者的数据库用户 ID。 |
|
TableDeleteTrigger |
表 |
表有 DELETE 触发器。 >1 = 给定类型的第一个触发器的 ID。 |
|
TableDeleteTriggerCount |
表 |
表具有指定数目的DELETE 触发器。 >1 = 给定类型的第一个触发器的 ID。 |
|
TableFullTextBackgroundUpdateIndexOn |
表 |
表已启用全文后台更新索引。 1 = True |
|
TableFulltextCatalogId |
表 |
表的全文索引数据所驻留的全文目录的 ID。 Nonzero = 全文目录ID,它与标识全文索引表中行的唯一索引相关。 |
|
TableFullTextChangeTrackingOn |
表 |
表已启用全文更改跟踪。 1 = True |
|
TableFulltextKeyColumn |
表 |
与某个单列唯一索引相关联的列 ID,这个单列唯一索引参与全文索引定义。 0 = 表不是全文索引的。 |
|
TableFullTextPopulateStatus |
表 |
0 = 不填充 |
|
TableHasActiveFulltextIndex |
表 |
表具有一个活动的全文索引。 1 = True |
|
TableHasCheckCnst |
表 |
表具有 CHECK 约束。 1 = True |
|
TableHasClustIndex |
表 |
表具有聚集索引。 1 = True |
|
TableHasDefaultCnst |
表 |
表具有 DEFAULT 约束。 1 = True |
|
TableHasDeleteTrigger |
表 |
表具有 DELETE 触发器。 1 = True |
|
TableHasForeignKey |
表 |
表具有 FOREIGN KEY 约束。 1 = True |
|
TableHasForeignRef |
表 |
表由 FOREIGN KEY 约束引用。 1 = True |
|
TableHasIdentity |
表 |
表具有标识列。 1 = True |
|
TableHasIndex |
表 |
表具有一个任何类型的索引。 1 = True |
|
TableHasInsertTrigger |
表 |
对象具有 Insert 触发器。 1 = True |
|
TableHasNonclustIndex |
表 |
表具有非聚集索引。 1 = True |
|
TableHasPrimaryKey |
表 |
表具有主键。 1 = True |
|
TableHasRowGuidCol |
表 |
对于uniqueidentifier列,表具有ROWGUIDCOL。 1 = True |
|
TableHasTextImage |
表 |
表具有 text 列。 1 = True |
|
TableHasTimestamp |
表 |
表具有 timestamp 列。 1 = True |
|
TableHasUniqueCnst |
表 |
表具有 UNIQUE 约束。 1 = True |
|
TableHasUpdateTrigger |
表 |
对象具有 Update 触发器。 1 = True |
|
TableInsertTrigger |
表 |
表具有 INSERT 触发器。 >1 = 给定类型的第一个触发器的 ID。 |
|
TableInsertTriggerCount |
表 |
表具有指定数目的INSERT 触发器。 >1 = 给定类型的第一个触发器的 ID。 |
|
TableIsFake |
表 |
表不是真实的。根据需要SQL Server 对其进行内部具体化。 1 = True |
|
TableIsPinned |
表 |
驻留表以将其保留在数据高速缓存中。 1 = True |
|
TableTextInRowLimit |
表 |
text in row 所允许的最大字节数,如果没有设置 text in row 选项则为 0。 |
|
TableUpdateTrigger |
表 |
表具有 UPDATE 触发器。 >1 = 给定类型的第一个触发器的 ID。 |
|
TableUpdateTriggerCount |
表 |
表具有指定数目的UPDATE 触发器。 >1 = 给定类型的第一个触发器的 ID。 |
返回类型
int
注释
OBJECTPROPERTY(view_id,'IsIndexable') 可能会耗费大量的计算机资源,这是因为对 IsIndexable 属性的评估需要分析视图定义、进行规范化以及部分优化。
当至少添加了表的一列以用于索引时,OBJECTPROPERTY(table_id, 'TableHasActiveFulltextIndex') 将返回"1"(True)。只要添加了用于索引的第一列后,全文索引即可用于填充。
当除去索引中的最后一列时,索引变成非活动。
如果某些索引键需求条件得不到满足,那么实际创建索引仍然可能会失败。详细信息请参见 CREATE INDEX。
示例
A. 查明 authors 是否为一个表
下面的示例测试 authors 是否为一个表。
IF OBJECTPROPERTY ( object_id('authors'),'ISTABLE') = 1
print 'Authors is a table'
ELSE IF OBJECTPROPERTY ( object_id('authors'),'ISTABLE') = 0
print 'Authors is not a table'
ELSE IF OBJECTPROPERTY ( object_id('authors'),'ISTABLE') IS NULL
print 'ERROR: Authors is not an object'
B. 确定是否在表上启用了 text in row
下面的示例测试是否在 authors 表上启用了 text in row 选项,以便 text、ntext 或 image 数据可以存储在它的数据行内。
USE pubs
SELECT OBJECTPROPERTY(OBJECT_ID('authors'),'TableTextInRowLimit')
结果集显示在表上没有启用 text in row。
-----
0
C. 确定用户定义的标量值函数是否具有确定性
下面的示例测试用户定义的标量值函数 fn_CubicVolume 是否具有确定性,该函数返回小数。
CREATE FUNCTION fn_CubicVolume
-- Input dimensions in centimeters.
(@CubeLength decimal(4,1), @CubeWidth decimal(4,1),
@CubeHeight decimal(4,1) )
RETURNS decimal(12,3) -- Cubic Centimeters.
WITH SCHEMABINDING
AS
BEGIN
RETURN ( @CubeLength * @CubeWidth * @CubeHeight )
END
--Is it a deterministic function?
SELECT OBJECTPROPERTY(OBJECT_ID('fn_CubicVolume'), 'IsDeterministic')
结果集显示 fn_CubicVolume 是确定性函数。
-----
1
外键,check,索引等,根据ID来检索详细信息的更多相关文章
- sql-主键、外键、索引
SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...
- ORACLE中关于外键缺少索引的探讨和总结
在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创 ...
- (转)ORACLE中关于外键缺少索引的探讨和总结
在ORACLE数据库中,定义外键约束时,ORACLE是不会自动创建对应索引的,必须手动在外键约束相关的列上创建索引.那么外键字段上是否有必要创建索引呢?如果有必要的话,巡检时,如何找出外键字段上没有创 ...
- Oracle外键不加索引会引起死锁问题
转载链接:http://www.jb51.net/article/50161.htm 这篇文章主要介绍了Oracle外键不加索引引起死锁的情况及解决,需要的朋友可以参考下 --创建一个表,此表作为子表 ...
- sql语句创建主键、外键、索引、绑定默认值
use Mengyou88_Wuliu --创建公司表 create table dbo.Company2 ( CompanyID ,) not null, CompanyName ) null, A ...
- Oracle中主键、外键、索引、序列、唯一性约束的创建
1.主键的创建 方法一:直接在sql语句中声明字段主键约束 create table table_name (id type[length] constraint pk_name primary ke ...
- mysql主键,外键,索引
主键 唯一而非空,只能有一个 作用: 1.唯一的标识一行 2.作为一个可以被外键有效引用的对象 3.保证数据完整性 设计原则: 1. 主键应当是对用户没有意义的.如果用户看到了一个表示多对多关系的 ...
- SQL SERVER之查询外键及索引
--查询表或数据库中的所有外键 select A.name as 约束名, object_name(b.parent_object_id) as 外健表, c.name as 外键列, object_ ...
- MySQL:主键、外键、索引(一)
干货: 主键是关系表中记录的唯一标识.主键的选取非常重要:主键不要带有业务含义,而应该使用BIGINT自增或者GUID类型.主键也不应该允许NULL.可以使用多个列作为联合主键,但联合主键并不常用. ...
随机推荐
- bzoj 5281 Talent Show —— 01分数规划+背包
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5281 二分一个答案比值,因为最后要*1000,不如先把 v[] *1000,就可以二分整数: ...
- appium学习【二】:用try捕获异常后,用例的执行结果为pass
在代码中用try..except捕获异常截图后,HTMLTestRunner生成的测试报告中,用例的执行结果为pass 解决办法为: 在try..except后加raise,只要再加个raise就行了 ...
- JavaScript-Tool:CKFinder
ylbtech-JavaScript-Tool:CKFinder 1.返回顶部 CKFinder是一个强大而易于使用的Web浏览器的Ajax文件管理器. 其简单的界面使得它直观,快速学习的各类用户,从 ...
- Asp.net MVC 中Code First 迁移使用
如果模型类(数据库上下文类Context和POCO类)发生改变,与数据库中的结构不一致,系统默认会抛出一个异常.可以考虑使用代码优先迁移. 代码优先迁移执行UpSert数据库操作,它在每一次更新数据库 ...
- SOLID总结(未完待续)
SOLID原则是著名的面向对像设计五原则,之所以要引入这些原则,是为了给以防止代码腐化而进行的重构活动定下切实可行的目标. 随着系统开发的进行,产品代码不可避免地会不断腐化,就算在开发过程中很好地应用 ...
- Mybatis invalid comparison: java.util.Date and java.lang.String
Mybatis的实体类是java.utils.Date类型,而在Mybatis的XML文件中,使用if判断了,不需要判断是否等于空字符串这种判断,需要人真一些 相关:https://blog.csdn ...
- 洛谷 P1606 [USACO07FEB]荷叶塘Lilypad Pond【spfa】
和bzoj同名题不一样! 起点和水点向花费一个荷花能到的第一个点连一条边权为1的有向边,然后跑计数spfa即可 #include<iostream> #include<cstdio& ...
- div不换行
三种方法: 1.float <div class="div1">123</div> <div class="div2">45 ...
- .Net Core之Configuration
ASP.NET CORE 中自动集成了应用配置,支持从以下 源 处获取配置键值对 命令行 环境变量 内存 文件配置 其中文件配置是我们最常用的方式,默认文件是.json的json格式文件,摒弃了以往. ...
- Luogu P1083 借教室【二分答案/差分】By cellur925
题目描述 Description 在大学期间,经常需要租借教室.大到院系举办活动,小到学习小组自习讨论,都需要 向学校申请借教室.教室的大小功能不同,借教室人的身份不同,借教室的手续也不一样. 面对海 ...