if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[student_Calss]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
这句话中N'[dbo].[student_Calss]' N是什么意思 为什么要加上
还有N'IsUserTable'中的N 又是什么意思 与上面有什么不用吗
还有像IsUserTable如:istable isnull 等等这些语句从何而来,希望能给出相关资料 小弟这里谢谢了
參考答案:字符串前边加N表示字符串使用的是unicode字符。
你所说的两种情况都是这样的。
IsUserTable和IsTable是函数OBJECTPROPERTY的属性名称,是SQL SERVER定义的,需要去记这些属性名称,你可以直接在SQL SERVER联机帮助上直接通过索引找到OBJECTPROPERTY的说明。
以下是我copy出来的,你可以参考着看看,由于知道把格式略去了,看起来不是很清晰,你最好还是从SQL SERVER帮助里边看。
属性名称 对象类型 描述和返回的值
CnstIsClustKey 约束 带有聚集索引的主键。
1 = True
0 = False
CnstIsColumn 约束 COLUMN 约束。
1 = True
0 = False
CnstIsDeleteCascade 约束 带有 ON DELETE CASCADE 选项的外键约束。
CnstIsDisabled 约束 禁用的约束。
1 = True
0 = False
CnstIsNonclustKey 约束 带有非聚集索引的主键。
1 = True
0 = False
CnstIsNotTrusted 约束 启用约束时未检查现有行,所以可能不是所有行都受约束的控制。
1 = True
0 = False
CnstIsNotRepl 约束 使用 NOT FOR REPLICATION 关键字定义约束。
CnstIsUpdateCascade 约束 带有 ON UPDATE CASCADE 选项的外键约束。
ExecIsAfterTrigger 触发器 AFTER 触发器。
ExecIsAnsiNullsOn 过程、触发器、视图 创建时的 ANSI_NULLS 设置。
1 = True
0 = False
ExecIsDeleteTrigger 触发器 DELETE 触发器。
1 = True
0 = False
ExecIsFirstDeleteTrigger 触发器 对表执行 DELETE 时触发的第一个触发器。
ExecIsFirstInsertTrigger 触发器 对表执行 INSERT 时触发的第一个触发器。
ExecIsFirstUpdateTrigger 触发器 对表执行 UPDATE 时触发的第一个触发器。
ExecIsInsertTrigger 触发器 INSERT 触发器。
1 = True
0 = False
ExecIsInsteadOfTrigger 触发器 INSTEAD OF 触发器。
ExecIsLastDeleteTrigger 触发器 对表执行 DELETE 时触发的最后一个触发器。
ExecIsLastInsertTrigger 触发器 对表执行 INSERT 时触发的最后一个触发器。
ExecIsLastUpdateTrigger 触发器 对表执行 UPDATE 时触发的最后一个触发器。
ExecIsQuotedIdentOn 过程、触发器、视图 创建时的 QUOTED_IDENTIFIER 设置。
1 = True
0 = False
ExecIsStartup 过程 启动过程。
1 = True
0 = False
ExecIsTriggerDisabled 触发器 禁用的触发器。
1 = True
0 = False
ExecIsUpdateTrigger 触发器 UPDATE 触发器。
1 = True
0 = False
HasAfterTrigger 表,视图 表或视图具有 AFTER 触发器。
1 = True
0 = False
HasInsertTrigger 表,视图 表或视图具有 INSERT 触发器。
1 = True
0 = False
HasInsteadOfTrigger 表、视图 表或视图具有 INSTEAD OF 触发器。
1 = True
0 = False
HasUpdateTrigger 表、视图 表或视图具有 UPDATE 触发器。
1 = True
0 = False
IsAnsiNullsOn 函数、过程、表、触发器、视图 指定表的 ANSI NULLS 选项设置为 ON,表示所有与空值的比较都取值为 UNKNOWN。只要表存在,该设置就应用于表定义中的所有表达式,包括计算列和约束。
1 = ON
0 = OFF
IsCheckCnst 任何 CHECK 约束。
1 = True
0 = False
IsConstraint 任何 约束。
1 = True
0 = False
IsDefault 任何 绑定的默认值。
1 = True
0 = False
IsDefaultCnst 任何 DEFAULT 约束。
1 = True
0 = False
IsDeterministic 函数、视图 函数的确定性属性。只适用于标量值及表值函数。
1 = 可确定的
0 = 不可确定的
NULL = 不是标量值或表值函数,或者是无效的对象 ID。
IsExecuted 任何 指定执行该对象的方式(视图、过程或触发器)。
1 = True
0 = False
IsExtendedProc 任何 扩展过程。
1 = True
0 = False
IsForeignKey 任何 FOREIGN KEY 约束。
1 = True
0 = False
IsIndexed 表、视图 带有索引的表或视图。
IsIndexable 表、视图 可以创建索引的表或视图。
IsInlineFunction 函数 内嵌函数。
1 = 内嵌函数
0 = 非内嵌函数
NULL = 不是函数,或者是无效的对象 ID。
IsMSShipped 任何 在安装 Microsoft® SQL Server™ 2000 的过程中创建的对象。
1 = True
0 = False
IsPrimaryKey 任何 PRIMARY KEY 约束。
1 = True
0 = False
IsProcedure 任何 过程。
1 = True
0 = False
IsQuotedIdentOn 函数、过程、表、触发器、视图 指定表的被引用标识符设置为 ON,表示在表定义所涉及的所有表达式中,双引号标记分隔标识符。
1 = ON
0 = OFF
IsReplProc 任何 复制过程。
1 = True
0 = False
IsRule 任何 绑定的规则。
1 = True
0 = False
IsScalarFunction 函数 标量值函数。
1 = 标量值
0 = 表值
NULL = 不是函数,或者是无效的对象 ID。
IsSchemaBound 函数,视图 使用 SCHEMABINDING 创建的架构绑定函数或视图。
1 = 架构绑定
0 = 非架构绑定
NULL = 不是函数或视图,或者是无效的对象 ID。
IsSystemTable 表 系统表。
1 = True
0 = False
IsTable 表 表。
1 = True
0 = False
IsTableFunction 函数 表值函数。
1 = 表值
0 = 标量值
NULL = 不是函数,或者是无效的对象 ID。
IsTrigger 任何 触发器。
1 = True
0 = False
IsUniqueCnst 任何 UNIQUE 约束。
1 = True
0 = False
IsUserTable 表 用户定义的表。
1 = True
0 = False
IsView 视图 视图。
1 = True
0 = False
OwnerId 任何 对象的所有者。
Nonnull = 对象所有者的数据库用户 ID。
NULL = 无效的输入。
TableDeleteTrigger 表 表有 DELETE 触发器。
>1 = 给定类型的第一个触发器的 ID。
TableDeleteTriggerCount 表 表具有指定数目的 DELETE 触发器。
>1 = 给定类型的第一个触发器的 ID。
NULL = 无效的输入。
TableFullTextBackgroundUpdateIndexOn 表 表已启用全文后台更新索引。
1 = True
0 = False
TableFulltextCatalogId 表 表的全文索引数据所驻留的全文目录的 ID。
Nonzero = 全文目录 ID,它与标识全文索引表中行的唯一索引相关。
0 = 表不是全文索引的。
TableFullTextChangeTrackingOn 表 表已启用全文更改跟踪。
1 = True
0 = False
TableFulltextKeyColumn 表 与某个单列唯一索引相关联的列 ID,这个单列唯一索引参与全文索引定义。
0 = 表不是全文索引的。
TableFullTextPopulateStatus 表 0 = 不填充
1 = 完全填充
2 = 增量填充
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
NULL = 无效的输入。
TableHasNonclustIndex 表 表具有非聚集索引。
1 = True
0 = False
TableHasPrimaryKey 表 表具有主键。
1 = True
0 = False
TableHasRowGuidCol 表 对于 uniqueidentifier 列,表具有 ROWGUIDCOL。
1 = True
0 = False
TableHasTextImage 表 表具有 text 列。
1 = True
0 = False
TableHasTimestamp 表 表具有 timestamp 列。
1 = True
0 = False
TableHasUniqueCnst 表 表具有 UNIQUE 约束。
1 = True
0 = False
TableHasUpdateTrigger 表 对象具有 Update 触发器。
1 = True
0 = False
TableInsertTrigger 表 表具有 INSERT 触发器。
>1 = 给定类型的第一个触发器的 ID。
TableInsertTriggerCount 表 表具有指定数目的 INSERT 触发器。
>1 = 给定类型的第一个触发器的 ID。
TableIsFake 表 表不是真实的。根据需要 SQL Server 对其进行内部具体化。
1 = True
0 = False
TableIsPinned 表 驻留表以将其保留在数据高速缓存中。
1 = True
0 = False
TableTextInRowLimit 表 text in row 所允许的最大字节数,如果没有设置 text in row 选项则为 0。
TableUpdateTrigger 表 表具有 UPDATE 触发器。
>1 = 给定类型的第一个触发器的 ID。
TableUpdateTriggerCount 表 表具有指定数目的 UPDATE 触发器。
>1 = 给定类型的第一个触发器的 ID。