下面一段是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如何获取数据库中所有表名等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)