SQL SERVER 2000 和 2005结构是不一样的,所以在获取SQL SERVER 2000/2005字段属性时需要分别来获取。

1。SQL SERVER 2000
 1获取SQL SERVER 2000/2005数据库字段属性
 2获取SQL SERVER 2000/2005数据库字段属性SELECT 
 3获取SQL SERVER 2000/2005数据库字段属性    字段名     = a.name,
 4获取SQL SERVER 2000/2005数据库字段属性    主键       = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
 5获取SQL SERVER 2000/2005数据库字段属性                     SELECT name FROM sysindexes WHERE indid in(
 6获取SQL SERVER 2000/2005数据库字段属性                        SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '1' else '0' end,
 7获取SQL SERVER 2000/2005数据库字段属性    标识       = CASE WHEN COLUMNPROPERTY(a.id, a.name, 
 8获取SQL SERVER 2000/2005数据库字段属性                      'IsIdentity'= 1 THEN '1' ELSE '0' END
 9获取SQL SERVER 2000/2005数据库字段属性    类型       = b.name,
10获取SQL SERVER 2000/2005数据库字段属性    占用字节数 = a.length,
11获取SQL SERVER 2000/2005数据库字段属性    长度       = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
12获取SQL SERVER 2000/2005数据库字段属性    小数       =  a.xscale,
13获取SQL SERVER 2000/2005数据库字段属性    可空       = a.isnullable,
14获取SQL SERVER 2000/2005数据库字段属性    默认值     = isnull(e.text,''),
15获取SQL SERVER 2000/2005数据库字段属性    字段说明   = isnull(g.[value],'')
16获取SQL SERVER 2000/2005数据库字段属性FROM 
17获取SQL SERVER 2000/2005数据库字段属性    syscolumns a
18获取SQL SERVER 2000/2005数据库字段属性left join 
19获取SQL SERVER 2000/2005数据库字段属性    systypes b 
20获取SQL SERVER 2000/2005数据库字段属性on 
21获取SQL SERVER 2000/2005数据库字段属性    a.xusertype=b.xusertype
22获取SQL SERVER 2000/2005数据库字段属性inner join 
23获取SQL SERVER 2000/2005数据库字段属性    sysobjects d 
24获取SQL SERVER 2000/2005数据库字段属性on 
25获取SQL SERVER 2000/2005数据库字段属性    a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties'
26获取SQL SERVER 2000/2005数据库字段属性left join 
27获取SQL SERVER 2000/2005数据库字段属性    syscomments e 
28获取SQL SERVER 2000/2005数据库字段属性on 
29获取SQL SERVER 2000/2005数据库字段属性    a.cdefault=e.id
30获取SQL SERVER 2000/2005数据库字段属性left join 
31获取SQL SERVER 2000/2005数据库字段属性    sysproperties g 
32获取SQL SERVER 2000/2005数据库字段属性on 
33获取SQL SERVER 2000/2005数据库字段属性    a.id=g.id and a.colid=g.smallid  
34获取SQL SERVER 2000/2005数据库字段属性left join 
35获取SQL SERVER 2000/2005数据库字段属性    sysproperties f 
36获取SQL SERVER 2000/2005数据库字段属性on 
37获取SQL SERVER 2000/2005数据库字段属性    d.id=f.id and f.smallid=0
38获取SQL SERVER 2000/2005数据库字段属性where 
39获取SQL SERVER 2000/2005数据库字段属性    d.name='UserAccount'

d.name = 'UserAccount',UserAccount为你需要查找的数据表。


2。SQL SERVER 2005

 1获取SQL SERVER 2000/2005数据库字段属性SELECT     CASE WHEN EXISTS
 2获取SQL SERVER 2000/2005数据库字段属性                          (SELECT     1
 3获取SQL SERVER 2000/2005数据库字段属性                            FROM          sysobjects
 4获取SQL SERVER 2000/2005数据库字段属性                            WHERE      xtype = 'PK' AND parent_obj = a.id AND name IN
 5获取SQL SERVER 2000/2005数据库字段属性                                                       (SELECT     name
 6获取SQL SERVER 2000/2005数据库字段属性                                                         FROM          sysindexes
 7获取SQL SERVER 2000/2005数据库字段属性                                                         WHERE      indid IN
 8获取SQL SERVER 2000/2005数据库字段属性                                                                                    (SELECT     indid
 9获取SQL SERVER 2000/2005数据库字段属性                                                                                      FROM          sysindexkeys
10获取SQL SERVER 2000/2005数据库字段属性                                                                                      WHERE      id = a.id AND colid = a.colid))) THEN '1' ELSE '0' END AS 'key'CASE WHEN COLUMNPROPERTY(a.id, a.name, 
11获取SQL SERVER 2000/2005数据库字段属性                      'IsIdentity'= 1 THEN '1' ELSE '0' END AS 'identity', a.name AS ColName, c.name AS TypeName, a.length AS 'byte'COLUMNPROPERTY(a.id, a.name, 
12获取SQL SERVER 2000/2005数据库字段属性                      'PRECISION'AS 'length', a.xscale, a.isnullable, ISNULL(e.text''AS 'default'ISNULL(p.value, ''AS 'comment'
13获取SQL SERVER 2000/2005数据库字段属性FROM         sys.syscolumns AS a INNER JOIN
14获取SQL SERVER 2000/2005数据库字段属性                      sys.sysobjects AS b ON a.id = b.id INNER JOIN
15获取SQL SERVER 2000/2005数据库字段属性                      sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN
16获取SQL SERVER 2000/2005数据库字段属性                      sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
17获取SQL SERVER 2000/2005数据库字段属性                      sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id
18获取SQL SERVER 2000/2005数据库字段属性WHERE     (b.name = 'keyfactory'AND (c.status <> '1')

b.name = 'Keyfactory','Keyfactory'为你想要查找的数据表。

相关文章: