SQL获取表,字段,类型的代码

SQL获取表,字段,类型的代码,第1张

下面一段是SQLSERVER数据库中获取数据字典的语法,非常全。

SELECT TOP 100 PERCENT --aid,

CASE WHEN acolorder = 1 THEN dname ELSE '' END AS 表名,

CASE WHEN acolorder = 1 THEN isnull(fvalue, '') ELSE '' END AS 表说明,

acolorder AS 字段序号, aname AS 字段名, CASE WHEN COLUMNPROPERTY(aid,

aname, 'IsIdentity') = 1 THEN '√' ELSE '' END AS 标识,

CASE WHEN EXISTS

(SELECT 1

FROM dbosysindexes si INNER JOIN

dbosysindexkeys sik ON siid = sikid AND siindid = sikindid INNER JOIN

dbosyscolumns sc ON scid = sikid AND sccolid = sikcolid INNER JOIN

dbosysobjects so ON soname = siname AND soxtype = 'PK'

WHERE scid = aid AND sccolid = acolid) THEN '√' ELSE '' END AS 主键,

bname AS 类型, alength AS 长度, COLUMNPROPERTY(aid, aname, 'PRECISION')

AS 精度, ISNULL(COLUMNPROPERTY(aid, aname, 'Scale'), 0) AS 小数位数,

CASE WHEN aisnullable = 1 THEN '√' ELSE '' END AS 允许空, ISNULL(etext, '')

AS 默认值, ISNULL(g[value], '') AS 字段说明, dcrdate AS 创建时间,

CASE WHEN acolorder = 1 THEN drefdate ELSE NULL END AS 更改时间

FROM dbosyscolumns a LEFT OUTER JOIN

dbosystypes b ON axtype = bxusertype INNER JOIN

dbosysobjects d ON aid = did AND dxtype = 'U' AND

dstatus >= 0 LEFT OUTER JOIN

dbosyscomments e ON acdefault = eid LEFT OUTER JOIN

dbosysproperties g ON aid = gid AND acolid = gsmallid AND

gname = 'MS_Description' LEFT OUTER JOIN

dbosysproperties f ON did = f

id AND fsmallid = 0 AND

fname = 'MS_Description'

ORDER BY dname, acolorder

样例表格:

之前讲了从表头获取,那对应的就有从表尾获取。

(一)从表尾开始提取

1     获取表的最后一条记录

TableLast (table as  table ,  optional default as  any )as  any

第1参数是需要 *** 作的表;第2参数是在空表的情况下的赋值;返回的结果如果是非空表则是最后一条记录,格式是Record格式,如果是空表则是赋值的格式。

例:

TableLast(数据)=[姓名="王五",成绩=80,学科="英语"]

TableLast(TableFromRecords({}),{"空表"})={"空表"}

解释:空表代表没有记录的表,但是可以有标题字段名。TableFromRecords({})生成的是一个空表,例如TableFromList({}),TableFromColumns({}),TableFromRows({})也是一样的,生成的是不具备标题字段的空表;TableFromValue({})生成的就是一个标题字段为Value的空表;因为是空表所以返回指定值。

2     获取指定条件表的最后几条记录

TableLastN (table as  table , countOrCondition as  any ) as  table

第1参数为 *** 作的表,第2参数为数字或者条件,返回的是一个表的格式。如第2参数是条件,则从尾开始匹配,返回满足的行,直到不满足为止。

例:

  <> TableLast(数据)

解释:因为TableLastN返回的是table格式,而TableLast返回的是record格式,所以不相等。

解释:因为成绩是降序排列,所以返回的结果是直到不满足条件结束。

TableLastN(数据,each_[成绩]>90)= #table({},{})

解释:因为最后一条记录是80,不满足第2参数的条件,所以没有满足条件的数据,返回的结果就是一个空表。

解释:查找姓名包含"五"的记录,并返回形成表格。因为第一条记录是的姓名是王五,满足条件,第二条记录是李四不满足条件结束,所以只返回最后一条记录并形成表格。

看来lz并没有认真看api文档啊,在接口connection中有一个getmetadata()函数,其返回值是接口databasemetadata,里面有各种数据库的配置信息,如是否支持空、最大连接数、用户可以调用的所有存储过程等,其中包括getschemas()-获取所有模式,gettables(),获取所有的表,根据输入的不同参数可以获取所有表或者其中某个模式的表,还包括表的注射等信息,getcolumns()则是获取表的具体字段,这些函数大多是以resultset的形式返回,和一般的jdbc使用差不多,lz慢慢研究研究吧

以上就是关于SQL获取表,字段,类型的代码全部的内容,包括:SQL获取表,字段,类型的代码、如何在Power Query中获取数据——表格篇(3)、java如何获取数据库中所有表名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9461945.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存