获取SQL SERVER 2000/2005数据库字段属性
2007-10-21 12:15
591 查看
SQL SERVER 2000 和 2005结构是不一样的,所以在获取SQL SERVER 2000/2005字段属性时需要分别来获取。
1。SQL SERVER 2000
1
2SELECT
3 字段名 = a.name,
4 主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
5 SELECT name FROM sysindexes WHERE indid in(
6 SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '1' else '0' end,
7 标识 = CASE WHEN COLUMNPROPERTY(a.id, a.name,
8 'IsIdentity') = 1 THEN '1' ELSE '0' END,
9 类型 = b.name,
10 占用字节数 = a.length,
11 长度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
12 小数 = a.xscale,
13 可空 = a.isnullable,
14 默认值 = isnull(e.text,''),
15 字段说明 = isnull(g.[value],'')
16FROM
17 syscolumns a
18left join
19 systypes b
20on
21 a.xusertype=b.xusertype
22inner join
23 sysobjects d
24on
25 a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
26left join
27 syscomments e
28on
29 a.cdefault=e.id
30left join
31 sysproperties g
32on
33 a.id=g.id and a.colid=g.smallid
34left join
35 sysproperties f
36on
37 d.id=f.id and f.smallid=0
38where
39 d.name='UserAccount'
d.name = 'UserAccount',UserAccount为你需要查找的数据表。
2。SQL SERVER 2005
1SELECT CASE WHEN EXISTS
2 (SELECT 1
3 FROM sysobjects
4 WHERE xtype = 'PK' AND parent_obj = a.id AND name IN
5 (SELECT name
6 FROM sysindexes
7 WHERE indid IN
8 (SELECT indid
9 FROM sysindexkeys
10 WHERE id = a.id AND colid = a.colid))) THEN '1' ELSE '0' END AS 'key', CASE WHEN COLUMNPROPERTY(a.id, a.name,
11 '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 'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'
13FROM sys.syscolumns AS a INNER JOIN
14 sys.sysobjects AS b ON a.id = b.id INNER JOIN
15 sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN
16 sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
17 sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id
18WHERE (b.name = 'keyfactory') AND (c.status <> '1')
b.name = 'Keyfactory','Keyfactory'为你想要查找的数据表。
1。SQL SERVER 2000
1
2SELECT
3 字段名 = a.name,
4 主键 = case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=a.id and name in (
5 SELECT name FROM sysindexes WHERE indid in(
6 SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid))) then '1' else '0' end,
7 标识 = CASE WHEN COLUMNPROPERTY(a.id, a.name,
8 'IsIdentity') = 1 THEN '1' ELSE '0' END,
9 类型 = b.name,
10 占用字节数 = a.length,
11 长度 = COLUMNPROPERTY(a.id,a.name,'PRECISION'),
12 小数 = a.xscale,
13 可空 = a.isnullable,
14 默认值 = isnull(e.text,''),
15 字段说明 = isnull(g.[value],'')
16FROM
17 syscolumns a
18left join
19 systypes b
20on
21 a.xusertype=b.xusertype
22inner join
23 sysobjects d
24on
25 a.id=d.id and d.xtype='U' and d.name<>'dtproperties'
26left join
27 syscomments e
28on
29 a.cdefault=e.id
30left join
31 sysproperties g
32on
33 a.id=g.id and a.colid=g.smallid
34left join
35 sysproperties f
36on
37 d.id=f.id and f.smallid=0
38where
39 d.name='UserAccount'
d.name = 'UserAccount',UserAccount为你需要查找的数据表。
2。SQL SERVER 2005
1SELECT CASE WHEN EXISTS
2 (SELECT 1
3 FROM sysobjects
4 WHERE xtype = 'PK' AND parent_obj = a.id AND name IN
5 (SELECT name
6 FROM sysindexes
7 WHERE indid IN
8 (SELECT indid
9 FROM sysindexkeys
10 WHERE id = a.id AND colid = a.colid))) THEN '1' ELSE '0' END AS 'key', CASE WHEN COLUMNPROPERTY(a.id, a.name,
11 '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 'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'
13FROM sys.syscolumns AS a INNER JOIN
14 sys.sysobjects AS b ON a.id = b.id INNER JOIN
15 sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN
16 sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
17 sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id
18WHERE (b.name = 'keyfactory') AND (c.status <> '1')
b.name = 'Keyfactory','Keyfactory'为你想要查找的数据表。
相关文章推荐
- 获取SQL SERVER 2000/2005数据库字段属性(转)
- 获取SQL SERVER 2000/2005数据库字段属性
- 为 Analysis Services 数据库使用扩展字段属性(SQL Server 2005 联机丛书(2008 年 11 月))
- 获取SQL Server 2005所有数据库名、所有表名、所有字段名
- sql server 2005获取数据库中所以表的字段类型
- SQL Server 2005数据库转到SQL Server 2000的步骤
- SQL Server 2005 数据库转 SQL Server 2000的方法小结
- SQL Server 2000 附加 SQL Server 2005 数据库具体方法
- Sql Server 2000数据库备份文件还原成Sql Server 2005
- (转)用Sql Server 2000的数据库备份还原到Sql Server 2005中的数据库
- SQL Server 2000/2005 数据库分页
- MS SQL 获取数据库名,表名,列名,说明等信息(SQL Server 2005 测试通过)
- 1.在sql server 2000 或者 2005中使用sql语句创建数据库
- Sql Server 2000的数据库备份还原到Sql Server 2005
- 用Sql Server 2000的数据库备份来还原Sql Server 2005中的数据库
- MySQL SQL Server 获取数据库中的所有表信息,字段信息
- 我正在使用的一个SQL Server 2000/2005/2008 数据库访问类-SqlCommon(C#)
- sql server 2000数据库备份文件还原成sql server 2005 /2008
- 图解SQL Server 2000和SQL Server 2005定期自动备份数据库(SQL Server 2000篇)
- 从Sql server获取表字段属性信息,注释信息