xtype                          type
C = CHECK 约束              C = CHECK 约束
D = 默认值或 DEFAULT 约束     D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束     F = FOREIGN KEY 约束
FN = 标量函数              FN = 标量函数
IF = 内嵌表函数              IF = 内嵌表函数
P = 存储过程              P = 存储过程
RF = 复制筛选存储过程     RF = 复制筛选存储过程
S = 系统表              S = 系统表
TF = 表函数              TF = 表函数
TR = 触发器              TR = 触发器
U = 用户表              U = 用户表
V = 视图                       V = 视图
X = 扩展存储过程              X = 扩展存储过程
L = 日志                       L = 日志--就这后面的不同
PK = PRIMARY KEY 约束(类型是 K) K = PRIMARY KEY 或 UNIQUE 约束
UQ = UNIQUE 约束(类型是 K) R = 规则

解决方案 »

  1.   

    最好用objectproperty来判断对象是否存在,这个即使在SQL升级后也不会出现兼容问题.
      

  2.   

    --判断用户表是否存在
    if objectproperty(object_id('要判断的表名'),'IsUserTable')=1
    print '存在'--判断指定的存储过程是否存在
    if objectproperty(object_id('要判断的表名'),'IsProcedure')=1
    print '存在'
      

  3.   

    对于楼主的情况,用xtype与type都一样.
      

  4.   

    问题2:
    如果判断存储过程,视图,函数是否存在又应该怎么写好一点?都用:
    if object_id('对象名') is not null
      select '在'