没有合适的资源?快使用搜索试试~ 我知道了~
探讨SQL利用INFORMATION_SCHEMA系统视图如何获取表的主外键信息
0 下载量 119 浏览量
2020-12-15
15:22:05
上传
评论
收藏 406KB PDF 举报
温馨提示
试读
5页
接着上篇文章《解析SQL 表结构信息查询 含主外键、自增长》里面提到了INFORMATION_SCHEMA视图,其实到了SQL 2005微软都主推大家使用INFORMATION_SCHEMA系统视图,而不是在使用sys东东了,当然目前还是有许多信息只能通过sys视图来查询。这里我们还是以查询表结果信息为例来说明一些主要的INFORMATION_SCHEMA视图的使用。首先我们需要查询列的信息,这需要用到[INFORMATION_SCHEMA].[COLUMNS]系统视图来查询数据列的信息,SQL 如下: 代码如下:SELECT c.TABLE_SCHEMA , c.TABLE_
资源详情
资源评论
资源推荐
探讨探讨SQL利用利用INFORMATION_SCHEMA系统视图如何获取表的系统视图如何获取表的
主外键信息主外键信息
接着上篇文章《解析解析SQL 表结构信息查询表结构信息查询 含主外键、自增长含主外键、自增长》里面提到了INFORMATION_SCHEMA视图,其实到了SQL 2005微
软都主推大家使用INFORMATION_SCHEMA系统视图,而不是在使用sys东东了,当然目前还是有许多信息只能通过sys视图来查
询。这里我们还是以查询表结果信息为例来说明一些主要的INFORMATION_SCHEMA视图的使用。
首先我们需要查询列的信息,这需要用到[INFORMATION_SCHEMA].[COLUMNS]系统视图来查询数据列的信息,SQL 如下:
代码如下:
SELECT c.TABLE_SCHEMA ,
c.TABLE_NAME ,
c.COLUMN_NAME ,
c.DATA_TYPE ,
c.CHARACTER_MAXIMUM_LENGTH ,
c.COLUMN_DEFAULT ,
c.IS_NULLABLE ,
c.NUMERIC_PRECISION ,
c.NUMERIC_SCALE
FROM [INFORMATION_SCHEMA].[COLUMNS] c
WHERE TABLE_NAME = ‘Address’
运行结果如下:
我们都知道我们在定义列的时候一般的使用都是varchar(50)之类的信息,这里我们需要整合DATA_TYPE和
CHARACTER_MAXIMUM_LENGTH信息,当CHARACTER_MAXIMUM_LENGTH为-1时即使说没有指定具体最大长度,数据的指
定长度信息是max,而numeric需要整合NUMERIC_PRECISION、NUMERIC_SCALE信息。修改后的SQL如下:
代码如下:
SELECT c.TABLE_SCHEMA ,
c.TABLE_NAME ,
c.COLUMN_NAME ,
CASE WHEN ( ( CHARINDEX(‘char’, c.DATA_TYPE) > 0
OR CHARINDEX(‘binary’, c.DATA_TYPE) > 0
)
AND c.CHARACTER_MAXIMUM_LENGTH <> -1
)
THEN c.DATA_TYPE + ‘(‘
+ CAST(c.CHARACTER_MAXIMUM_LENGTH AS VARCHAR(4)) + ‘)’
WHEN ( ( CHARINDEX(‘CHAR’, c.DATA_TYPE) > 0
OR CHARINDEX(‘binary’, c.DATA_TYPE) > 0
)
AND c.CHARACTER_MAXIMUM_LENGTH = -1
) THEN c.DATA_TYPE + ‘(max)’
WHEN ( CHARINDEX(‘numeric’, c.DATA_TYPE) > 0 )
THEN c.DATA_TYPE + ‘(‘ + CAST(c.NUMERIC_PRECISION AS VARCHAR(4))
+ ‘,’ + CAST(c.NUMERIC_SCALE AS VARCHAR(4)) + ‘)’
ELSE c.DATA_TYPE
END AS DATA_TYPE ,
c.COLUMN_DEFAULT ,
c.IS_NULLABLE ,
c.COLUMN_DEFAULT
FROM [INFORMATION_SCHEMA].[COLUMNS] c
WHERE TABLE_NAME = ‘Address’
ORDER BY c.ORDINAL_POSITION
运行结果如图:
weixin_38747444
- 粉丝: 9
- 资源: 913
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- apk.tw_LineLite_v8a_v.2.17.1_sign.apk
- Elasticsearch实战:构建高效搜索系统的秘诀.zip
- HTML+CSS+JS网页设计:从入门到精通.zip
- 数据库课程设计:从理论到实践的全面指南.zip
- Python闭包:深入理解与应用场景解析.zip
- Win64OpenSSL-3-3-0.exe
- 课高分程设计-基于C++实现的民航飞行与地图简易管理系统-南京航空航天大学
- 航天器遥测数据故障检测系统python源码+文档说明+数据库(课程设计)
- 北京航空航天大学操作系统课设+ppt+实验报告
- 基于Vue+Echarts实现风力发电机中传感器的数据展示监控可视化系统+源代码+文档说明(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0