columnproperty server sql_获取SQL Server表字段的各种属性实例代码

-- SQL Server 2000

SELECT a.name AS 字段名, CASE WHEN EXISTS

(SELECT 1

FROM sysobjects

WHERE xtype = 'PK' AND parent_obj = a.id AND name IN

(SELECT name

FROM sysindexes

WHERE indid IN

(SELECT indid

FROM sysindexkeys

WHERE id = a.id AND colid = a.colid)))

THEN '1' ELSE '0' END AS 主键, CASE WHEN COLUMNPROPERTY(a.id, a.name,

'IsIdentity') = 1 THEN '1' ELSE '0' END AS 标识, b.name AS 类型,

a.length AS 占用字节数, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度,

a.xscale AS 小数, a.isnullable AS 可空, ISNULL(e.text, '') AS 默认值, ISNULL(g.[value],

'') AS 字段说明

FROM syscolumns a LEFT OUTER JOIN

systypes b ON a.xusertype = b.xusertype INNER JOIN

sysobjects d ON a.id = d.id AND d.xtype = 'U' AND

d.name <> 'dtproperties' LEFT OUTER JOIN

syscomments e ON a.cdefault = e.id LEFT OUTER JOIN

sysproperties g ON a.id = g.id AND a.colid = g.smallid LEFT OUTER JOIN

sysproperties f ON d.id = f.id AND f.smallid = 0

WHERE (d.name = '表名称')

--2。SQL SERVER 2005

SELECT CASE WHEN EXISTS

(SELECT 1

FROM sysobjects

WHERE xtype = 'PK' AND parent_obj = a.id AND name IN

(SELECT name

FROM sysindexes

WHERE indid IN

(SELECT indid

FROM sysindexkeys

WHERE id = a.id AND colid = a.colid))) THEN '1' ELSE '0' END AS 'key', CASE WHEN COLUMNPROPERTY(a.id, a.name,

'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,

'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'

FROM sys.syscolumns AS a INNER JOIN

sys.sysobjects AS b ON a.id = b.id INNER JOIN

sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN

sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN

sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id

WHERE (b.name = 'keyfactory') AND (c.status <> '1')

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

--2、SQL SERVER 2005

SELECT CASE WHEN EXISTS

(SELECT 1

FROM sysobjects

WHERE xtype = 'PK' AND parent_obj = a.id AND name IN

(SELECT name

FROM sysindexes

WHERE indid IN

(SELECT indid

FROM sysindexkeys

WHERE id = a.id AND colid = a.colid))) THEN '1' ELSE '0' END AS 'key', CASE WHEN COLUMNPROPERTY(a.id, a.name,

'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,

'PRECISION') AS 'length', a.xscale, a.isnullable, ISNULL(e.text, '') AS 'default', ISNULL(p.value, '') AS 'comment'

FROM sys.syscolumns AS a INNER JOIN

sys.sysobjects AS b ON a.id = b.id INNER JOIN

sys.systypes AS c ON a.xtype = c.xtype LEFT OUTER JOIN

sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN

sys.extended_properties AS p ON a.id = p.major_id AND a.colid = p.minor_id

WHERE (b.name = 'keyfactory') AND (c.status <> '1')

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值