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

2022-05-24 0 769

复制代码 代码如下:

— 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’为你想要查找的数据表。

免责声明:
1、本网站所有发布的源码、软件和资料均为收集各大资源网站整理而来;仅限用于学习和研究目的,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。 不得使用于非法商业用途,不得违反国家法律。否则后果自负!

2、本站信息来自网络,版权争议与本站无关。一切关于该资源商业行为与www.niceym.com无关。
如果您喜欢该程序,请支持正版源码、软件,购买注册,得到更好的正版服务。
如有侵犯你版权的,请邮件与我们联系处理(邮箱:skknet@qq.com),本站将立即改正。

NICE源码网 MsSql 获取SQL Server表字段的各种属性实例代码 https://www.niceym.com/61481.html