【SQL server基础】objectproperty()函数

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 =系统版本化的时间表

 1 -- 验证 dbo.Department 是否是一个表
 2 IF (OBJECTPROPERTY (OBJECT_ID(N‘dbo.Department‘),‘ISTABLE‘) = 1)
 3 begin
 4     select ‘Department 是一个表‘
 5 end
 6 ELSE IF (OBJECTPROPERTY (OBJECT_ID(N‘dbo.Department‘),‘ISTABLE‘) = 0)
 7 begin
 8     select ‘Department 不是一个表‘
 9 end
10 ELSE IF (OBJECTPROPERTY (OBJECT_ID(N‘dbo.Department‘),‘ISTABLE‘) IS NULL)
11 begin
12     select ‘Department 不是一个有效的对象‘
13 end
14 GO
 1 -- 验证表 Department 是否 是用户自定义的表
 2 IF (OBJECTPROPERTY (OBJECT_ID(N‘dbo.Department‘),‘IsUserTable‘) = 1)
 3 begin
 4    SELECT ‘Department 是用户自定义的表‘
 5 end
 6 ELSE
 7 begin
 8    SELECT ‘Department 不是用户自定义的表‘;
 9 end
10 GO
时间: 2024-08-05 19:29:48

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

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

函数与分组查询数据 系统函数分 聚合函数.数据类型转换函数.日期函数.数学函数 . . . 1. 聚合函数 主要是对一组值进行计算,然后返回一个值. 聚合函数包括 sum(求和).avg(求平均值).min().max().count(求数量) sum函数语法  :  sum(列明) select sum(sno) as 序号和 from stu_info avg select avg(sno) as 序号平均值 from stu_info . . . count 用来一组值的个数,统计 sel

SQL Server基础

一.常用命令 1.使用命令行开启SQL Server服务 获取管理员权限的命令行工具: net start mssqlserver 开启sql server服务 net restart mssqlserver 重新启动sql server服务 net stop mssqlserver 关闭sql server服务 2.使用命令登陆(该方法可适用于在一台没有SQL Server的电脑去操作一台有SQL Server的电脑) 运行: sqpl ?/ [-S 服务器的名称]  [-U 登陆名] [-P

SQL Server UDF用户自定义函数

UDF的定义 和存储过程很相似,用户自定义函数也是一组有序的T-SQL语句,UDF被预先优化和编译并且尅作为一个单元爱进行调用.UDF和存储过程的主要区别在于返回结果的方式. 使用UDF时可传入参数,但不可传出参数.输出参数的概念被更为健壮的返回值取代了.和系统函数一样,可以返回标量值,这个值的好处是它并不像在存储过程中那样只限于整形数据类型,而是可以返回大多数SQL Server数据类型. UDF有以下两种类型: 返回标量值的UDF. 返回表的UDF. 创建语法: CREATE FUNCTIO

SQL Server基础知识

查看sql server版本 select @@VERSION 基本操作 use tty; 使用tty数据库 create table tt(name varchar(10)); 新建表tt insert into tt values('ftp'); 插入数据ftp select * from tt; 查看表tt delete from tt; 删除表表tt中的一条记录 运行命令的快捷方式: Alt+x 重启数据库服务 net restart mssqlserver 修改用户密码 企业管理器——

SQL Server数据库ROW_NUMBER()函数使用

下面以几个实例来说明ROW_NUMBER()函数的使用. 实例如下: 1.使用row_number()函数进行编号,如 select email,customerID, ROW_NUMBER() over(order by psd) as rows from QT_Customer 原理:先按psd进行排序,排序完后,给每条数据进行编号. 2.在订单中按价格的升序进行排序,并给每条记录进行排序代码如下: select DID,customerID,totalPrice,ROW_NUMBER() 

SQL Server 基础 03 查询数据基础

查询数据 简单的查询 1 create table stu_info 2 ( 3 sno int not null 4 ,sname varchar(20) not null 5 ,sex varchar(2) not null 6 ,birth varchar(20) not null 7 ,email varchar(20) not null 8 ,telephone int not null 9 ,depart varchar(20) not null 10 ) 11 12 13 sele

SQL SERVER 下PadLeft函数

在.net中,可以使用String.PadLeft函数左对齐字符串,在左边用指定的Unicode字符填充以达到指定的总长度.      例如:在做自动编号这样使用 1: int ID = da.GetMaxNum() + 1; 2: this.tbID.Text = ID.ToString().PadLeft(6, '0'); 1: --在sql中 2: 3: --功能:右对齐的字符,在左边用指定的字符填充以达到指定的总长度. 4: --原始字符 @num:填充字符 @paddingChar:字

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

SQL server基础知识 一.基础知识 (1).存储结构:数据库->表->数据 (2).管理数据库 增加:create database 数据库名称 删除:drop database 数据库名称 查询:select name from master..sysdatabases 修改:alter database 数据库名称(在 sql server 中修改与数据库关联的文件和文件组.在数据库中添加或删除文件和文件组.更改数据库或其文件和文件组的属性) (3).管理表 选择数据库:use 数

SQL Server数据库ROW_NUMBER()函数使用详解

SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_NUMBER()函数的使用是本文我们要介绍的内容,接下来我们就通过几个实例来一一介绍ROW_NUMBER()函数的使用. 实例如下: 1.使用row_number()函数进行编号,如 select email,customerID, ROW_NUMBER() over(order by psd) a

SQL Server 2005 MD5函数

原文:SQL Server 2005 MD5函数 在SQL Server 2005下自带的函数HashBytes() ,此函数是微软在SQL Server 2005中提供的,可以用来计算一个字符串的MD5和SHA1值,使用方法如下: --获取123456的MD5加密串 select hashbytes('MD5', '123456') ; --获取123456的SHA1加密串 select hashbytes('SHA1', '123456') ; 有了这个函数可以在SQL Server中为字符