SQL server获取字段信息以及不支持“variant”数据类型的问题解决
2021/11/16 19:12:25
本文主要是介绍SQL server获取字段信息以及不支持“variant”数据类型的问题解决,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
今天在开发中遇到一个需要获取SQL server数据库字段信息的需求
需要字段名称、字段类型、字段长度、字段注释等信息
经过一番搜索终于找到两个满足需求的sql,记录一下
SELECT a.name tablename, b.name colName, c.name colType, b.length colLength FROM sysobjects a INNER JOIN syscolumns b ON a.id= b.id AND a.xtype IN ( 'U', 'V' ) INNER JOIN systypes c ON b.xtype= c.xusertype WHERE a.name= '表名'
这一段可以查看当前表的名称、字段名称、字段类型和字段长度,但是缺少我需要的字段注释,
SELECT A.name AS tablename, B.name AS colName, C.value AS colDescription FROM sys.tables A INNER JOIN sys.columns B ON B.object_id = A.object_id LEFT JOIN sys.extended_properties C ON C.major_id = B.object_id AND C.minor_id = B.column_id WHERE A.name = '表名'
这一段可以查到字段注释;最后把两段代码用字段名join简单结合了一下;
第二段在使用jdbc或者mybatis时会报错:
com.microsoft.sqlserver.jdbc.SQLServerException: 不支持“variant”数据类型。
这是由于查询语句查到的三个参数是variant数据类型的,它可以存放多种数据类型因此必须进行转换;
CONVERT(varchar(200), a.name) as table_name
但是在字段注解中如果使用中文,SQL server在转换成varchar时可能会变成乱码因此需要使用
CONVERT(nvarchar(200), c.value) as colDescription
就可以解决问题。
这篇关于SQL server获取字段信息以及不支持“variant”数据类型的问题解决的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-01-08Docker下的SqlServer发布订阅启用
- 2023-06-05Docker安装MS SQL Server并使用Navicat远程连接
- 2023-05-25深入浅出 SQL Server CDC 数据同步
- 2023-05-12通过空间占用和执行计划了解SQL Server的行存储索引
- 2023-04-24以SQLserver为例的Dapper详细讲解
- 2022-11-30SQL server高级函数查询
- 2022-11-26SQL SERVER数据库服务器CPU不能全部利用原因分析
- 2022-11-21SQL Server 时间算差值/常用函数
- 2022-11-20调试Archery连接SQL Server提示驱动错误
- 2022-10-22SQL Server 完整、差异备份+完整、差异还原(详细讲解,规避错误)