object_id(N'[dbo].[PerPersonData]') AND OBJECTPROPERTY(id, N'IsUserTable')

请问:if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[PerPersonData]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) 中的object_id(N'[dbo].[PerPersonData]')是什么意思?那个object_id函数?那个N? 还有OBJECTPROPERTY(id, N'IsUserTable') = 1中的OBJECTPROPERTY函数是什么意思?那个=1又是什么意思? 答:OBJECT_ID:返回数据库对象标识号。N是显式的将非unicode字符转成unicode字符,它来自 SQL-92 标准中的 National(Unicode)数据类型,用于扩展和标准化,在这里可以不用,写作object_id(PerPersonData)。 OBJECTPROPERTY:返回当前数据库中对象的有关信息。1表“真”。同样可以写成OBJECTPROPERTY(id, sUserTable) = 1。 整条语句的意思是判断数据库里有没有存在PerPersonData这样一张表。 经常看到 dbo.sysobjects 表,不知道到底是什么,整理如下: 网上一般说是一张系统表,但我找了半天都没找到,其实,这是一张视图,再去数据库找找看吧。每个数据库都会有这么一张视图,我们可以方便的从这里面找出该数据库的相关信息。 列名 数据类型 描述 ----------------------------------------------------------- name sysname 对象名。 Id int 对象标识号。 xtype char(2) 对象类型。可以是下列对象类型中的一种: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 L = 日志 FN = 标量函数 IF = 内嵌表函数 P = 存储过程 PK = PRIMARY KEY 约束(类型是 K) RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 UQ = UNIQUE 约束(类型是 K) V = 视图 X = 扩展存储过程 uid smallint 所有者对象的用户 ID。 info smallint 保留。仅限内部使用。 status int 保留。仅限内部使用。 base_schema_ver int 保留。仅限内部使用。 replinfo int 保留。供复制使用。 parent_obj int 父对象的对象标识号(例如,对于触发器或约束,该标识号为表ID)。 crdate datetime 对象的创建日期。 ftcatid smallint 为全文索引注册的所有用户表的全文目录标识符,对于没有注册的所有用户表则为 0。 schema_ver int 版本号,该版本号在每次表的架构更改时都增加。 stats_schema_ver int 保留。仅限内部使用。 type char(2) 对象类型。可以是下列值之一: C = CHECK 约束 D = 默认值或 DEFAULT 约束 F = FOREIGN KEY 约束 FN = 标量函数 IF = 内嵌表函数 K = PRIMARY KEY 或 UNIQUE 约束 L = 日志 P = 存储过程 R = 规则 RF = 复制筛选存储过程 S = 系统表 TF = 表函数 TR = 触发器 U = 用户表 V = 视图 X = 扩展存储过程 userstat smallint 保留。 sysstat smallint 内部状态信息。 indexdel smallint 保留。 refdate datetime 留作以后使用。 version int 留作以后使用。 deltrig int 保留。 instrig int 保留。 updtrig int 保留。 seltrig int 保留。 category int 用于发布、约束和标识。 cache smallint 保留。 --------------------------------------几个有用的语句(不断更新)-------------------- --获取数据库中所有创建的表(非系统) select * from sysobjects where xtype='u' and status > 0 --获取指定数据中表的所有字段与类型 select A.name,B.name as Type from syscolumns A join systypes B on A.xtype = B.xusertype where id = object_id('表名')
posted @ 2011-12-16 11:42  向梦想挺进  Views(2135)  Comments(0Edit  收藏  举报