日期:2014-05-17  浏览次数:20555 次

SQL2000列判断?
在SQL2000,如何盘点一个表中的列是唯一列,主键列,自增长列。
在SQL2000中的帮助文件没看明白。
------最佳解决方案--------------------
null
------其他解决方案--------------------
2000有啥系统表我都忘了,要是05甚至08,就简单多了,有函数可以查找的
------其他解决方案--------------------
嗯,  看了下帮助  05 08的系统表就标识的很清楚,2000的就没找到在什么地方 

------其他解决方案--------------------
SELECT   
字段序号=a.colorder, 
字段名=a.name, 
字段类型=case   when   COLUMNPROPERTY(   a.id,a.name, 'IsIdentity ')=1   then   '标识字段 'else   ' '   end 
+case   when   exists(SELECT   1   FROM   sysobjects   where   xtype= 'PK '   and   name   in   ( 
SELECT   name   FROM   sysindexes   WHERE   indid   in( 
SELECT   indid   FROM   sysindexkeys   WHERE   id   =   a.id   AND   colid=a.colid 
)))   then   '   主键字段 '   else   ' '   end 
FROM   syscolumns   a 
where   id=object_id(N 'jobs ') --要查询的表名 
and( --标识字段 
COLUMNPROPERTY(   a.id,a.name, 'IsIdentity ')=1 
or   --主键字段 
exists(SELECT   1   FROM   sysobjects   where   xtype= 'PK '   and   name   in   ( 
SELECT   name   FROM   sysindexes   WHERE   indid   in( 
SELECT   indid   FROM   sysindexkeys   WHERE   id   =   a.id   AND   colid=a.colid 
)))) 
order   by   a.id,a.colorder 

------其他解决方案--------------------
SELECT 
    表名=case   when   a.colorder=1   then   d.name   else   ' '   end, 
    字段序号=a.colorder, 
    字段名=a.name, 
    标识=case   when   COLUMNPROPERTY(   a.id,a.name, 'IsIdentity ')=1   then   '√ 'else   ' '   end, 
    主键=case   when   exists(SELECT   1   FROM   sysobjects   where   xtype= 'PK '   and   name   in   ( 
SELECT   name   FROM   sysindexes   WHERE   indid   in( 
SELECT   indid   FROM   sysindexkeys   WHERE   id   =   a.id   AND  &n