SQL Server OBJECTPROPERTY使用方法

 

OBJECTPROPERTY 返回有关当前数据库中的模式作用域对象的信息。此函数不能用于不是模式范围的对象,例如数据定义语言(DDL)触发器和事件通知。

OBJECTPROPERTY 语法:

1 OBJECTPROPERTY ( id , property ) 

参数:

id:表示当前数据库中对象ID的表达式。id是int,并且被假定为当前数据库上下文中的模式作用域对象。

property:是表示由id指定的对象返回的信息的表达式。属性可以是以下值之一。

注意:

除非另有说明,否则当属性不是有效的属性名称时返回NULL ,id不是有效的对象ID,

id是指定属性的不受支持的对象类型,或者调用者没有查看对象元数据的权限。

属性名称 对象类型 说明和返回的值
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  表

适用于:SQL Server 2008通过SQL Server 2016.

表格启用了全文变更跟踪。

1 = TRUE

0 = FALSE

TableFulltextDocsProcessed

适用于:SQL Server 2008通过SQL Server 2016.

自全文索引开始以来处理的行数。在为全文搜索索引的表中,一行的所有列都被视为要编制索引的一个文档的一部分。

0 =没有主动抓取或全文索引完成。

> 0 =以下之一(A或B):A)自完成,增量或手动更改跟踪人口开始以来,通过插入或更新操作处理的文档数。B)启用了具有后台更新索引总体的更改跟踪后由插入或更新操作处理的行数,全文索引架构已更改,重新创建全文目录或重新启动SQL Server实例等。

NULL =表没有全文索引。

TableFulltextFailCount 行数全文搜索没有索引。

0 =人口已经完成。

> 0 =以下(A或B)之一:A)自完全,增量和手动更新开始以来未编入索引的文档数量更改跟踪人口。B)对于具有后台更新索引的变更跟踪,自开始人口以来未编入索引的行数,或者重新启动人口。这可能是由于模式更改,目录重建,服务器重新启动等引起的。

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

表具有用于唯一标识列的ROWGUIDCOL。

1 = True

0 = False

TableHasTextImage

表具有 textntext 或 image 列。

1 = True

0 = False

TableHasTimestamp

表具有一个时间戳列。

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

 TableIsMemoryOptimized  表是内存优化

1 = True

0 = False

基本数据类型:int

 TableTextInRowLimit  行中的文本允许的最大字节数。

如果没有设置行中的文本选项,则为0。

TableUpdateTrigger 表有一个UPDATE触发器。

> 1 =具有指定类型的第一个触发器的ID。

TableUpdateTriggerCount

该表具有指定数量的UPDATE触发器。

> 0 = UPDATE触发器的数量。

TableHasColumnSet

表具有列集。

0 = False

1 = True

TableTemporalType 指定表的类型。

0 =非时间表

1 =系统版本表

2的历史表2 =系统版本化的时间表

 -- 验证 dbo.Department 是否是一个表
IF (OBJECTPROPERTY (OBJECT_ID(N'dbo.Department'),'ISTABLE') = )
begin
select 'Department 是一个表'
end
ELSE IF (OBJECTPROPERTY (OBJECT_ID(N'dbo.Department'),'ISTABLE') = )
begin
select 'Department 不是一个表'
end
ELSE IF (OBJECTPROPERTY (OBJECT_ID(N'dbo.Department'),'ISTABLE') IS NULL)
begin
select 'Department 不是一个有效的对象'
end
GO
 -- 验证表 Department 是否 是用户自定义的表
IF (OBJECTPROPERTY (OBJECT_ID(N'dbo.Department'),'IsUserTable') = )
begin
SELECT 'Department 是用户自定义的表'
end
ELSE
begin
SELECT 'Department 不是用户自定义的表';
end
GO

【SQL server基础】objectproperty()函数的更多相关文章

  1. SQL Server 基础 04 函数与分组查询数据

    函数与分组查询数据 系统函数分 聚合函数.数据类型转换函数.日期函数.数学函数 . . . 1. 聚合函数 主要是对一组值进行计算,然后返回一个值. 聚合函数包括 sum(求和).avg(求平均值). ...

  2. sql server中常用方法函数

    SQL SERVER常用函数 1.DATEADD在向指定日期加上一段时间的基础上,返回新的 datetime 值. (1)语法: DATEADD ( datepart , number, date ) ...

  3. 数据库开发基础-SQl Server 基础

    SQL Server 基础 1.什么是SQL Server SQL:Structured Query Language  结构化查询语言 SQL Server是一个以客户/服务器(c/s)模式访问.使 ...

  4. 【SQL Server】SQL Server基础之存储过程

    SQL Server基础之存储过程  阅读目录 一:存储过程概述 二:存储过程分类 三:创建存储过程 1.创建无参存储过程 2.修改存储过程 3.删除存储过程 4.重命名存储过程 5.创建带参数的存储 ...

  5. SQL Server UDF用户自定义函数

    UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用.UDF和存储过程的主要区别在于返回结果的方式. 使用UDF时可传入参数, ...

  6. Sql Server 基础语法

    来自:http://www.cnblogs.com/AaronYang/archive/2012/04/24/2468093.html Sql Server 基础语法 -- 查看数据表 select  ...

  7. SQL Server 内置函数、临时对象、流程控制

    SQL Server 内置函数 日期时间函数 --返回当前系统日期时间 select getdate() as [datetime],sysdatetime() as [datetime2] getd ...

  8. SQL Server:字符串函数

    以下所有例子均Studnet表为例: 1. len():计算字符串长度 len()用来计算字符串的长度,每个中文汉字或英文字母都为一个长度 select sname, len(sname) from ...

  9. SQL server基础知识(表操作、数据约束、多表链接查询)

    SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database ...

  10. SQL Server 分隔字符串函数实现

    在SQL Server中有时候也会遇到字符串进行分隔的需求.平时工作中常常遇到这样的需求,例如:人员数据表和人员爱好数据表,一条人员记录可以多多人员爱好记录,而往往人员和人员爱好在界面展示层要一并提交 ...

随机推荐

  1. effective java 3th 序

    正本基本是自己翻译,翻译绝对有错误,就是这么自信,看的时候,自己注意下,如果感觉有语句不通,那么可能就是我翻译的出现了问题,可以自己翻找原文对比下. 其中自己的见解,我写在脚注中. 在 1997 年, ...

  2. java实现截取PDF指定页并进行图片格式转换

    1.引入依赖 <dependency> <groupId>org.apache.pdfbox</groupId> <artifactId>pdfbox& ...

  3. 爬虫工程师分享:三步就搞定 Android 逆向

    本文源于我近期的一次公司内部分享,通过逆向某款 APP 来介绍逆向过程.由于仅作为学习用途,APP 的相关信息会被遮盖,敬请理解. 关于逆向 逆向--包括但不限于通过反编译.Hook 等手段,来解析一 ...

  4. 2019牛客暑期多校训练营(第二场) - J - Go on Strike! - 前缀和预处理

    题目链接:https://ac.nowcoder.com/acm/contest/882/C 来自:山东大学FST_stay_night的的题解,加入一些注释帮助理解神仙代码. 好像题解被套了一次又一 ...

  5. Minimum spanning tree for each edge(倍增LCA)

    https://vjudge.net/contest/320992#problem/J 暑期训练的题. 题意:给你一个n个点,m条边的无向图.对于每一条边,求包括该边的最小生成树. 思路:首先想到求一 ...

  6. codeforces Educational Codeforces Round 24 (A~F)

    题目链接:http://codeforces.com/contest/818 A. Diplomas and Certificates 题解:水题 #include <iostream> ...

  7. 为什么spark中只有ALS

    WRMF is like the classic rock of implicit matrix factorization. It may not be the trendiest, but it ...

  8. 英文写作report

    Writting Attached Files   Maybe you might want to get familiar about how to write the Final report. ...

  9. IDEA新建一个最简单的Maven的JavaWeb项目

    1.项目环境 IDEA:2016.2 JDK:1.8.0_76 Maven:3.2.5 2.File-->New-->Project-->Maven 3.选择Project SDK: ...

  10. 玩转 SpringBoot 2 快速整合 | JSP 篇

    前言 JavaServer Pages(JSP)技术使Web开发人员和设计人员能够快速开发和轻松维护利用现有业务系统的信息丰富的动态Web页面. 作为Java技术系列的一部分,JSP技术可以快速开发独 ...