首页 > 数据库 >SQLserver 根据表名 转实体类

SQLserver 根据表名 转实体类

时间:2024-04-01 11:55:25浏览次数:20  
标签:实体类 SQLserver decimal when id Result 表名 typ col

 

declare @TableName sysname = 'T1'
declare @Result varchar(max) = '
/// <summary>
/// ' + @TableName +

'
/// </summary>
public class ' + @TableName + '
{'

select @Result = @Result + '
/// <summary>
/// ' + CONVERT(NVARCHAR(500), ISNULL(ColName, '无')) +

'
/// </summary>
public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
'
from
(
    SELECT
        replace(col.name, ' ', '_') ColumnName,
        column_id ColumnId,
        prop.value ColName,
        case typ.name
            when 'bigint' then 'long'
            when 'binary' then 'byte[]'
            when 'bit' then 'bool'
            when 'char' then 'string'
            when 'date' then 'DateTime'
            when 'datetime' then 'DateTime'
            when 'datetime2' then 'DateTime'
            when 'datetimeoffset' then 'DateTimeOffset'
            when 'decimal' then 'decimal'
            when 'float' then 'float'
            when 'image' then 'byte[]'
            when 'int' then 'int'
            when 'money' then 'decimal'
            when 'nchar' then 'char'
            when 'ntext' then 'string'
            when 'numeric' then 'decimal'
            when 'nvarchar' then 'string'
            when 'real' then 'double'
            when 'smalldatetime' then 'DateTime'
            when 'smallint' then 'short'
            when 'smallmoney' then 'decimal'
            when 'text' then 'string'
            when 'time' then 'TimeSpan'
            when 'timestamp' then 'DateTime'
            when 'tinyint' then 'byte'
            when 'uniqueidentifier' then 'Guid'
            when 'varbinary' then 'byte[]'
            when 'varchar' then 'string'
            else 'UNKNOWN_' + typ.name
        end ColumnType,
        case
            when col.is_nullable = 1 and typ.name in ('bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal', 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint', 'smallmoney', 'time', 'tinyint', 'uniqueidentifier')
            then '?'
            else ''
        end NullableSign
    from sys.columns col
        join sys.types typ on
            col.system_type_id = typ.system_type_id AND col.user_type_id = typ.user_type_id
            LEFT JOIN sys.extended_properties prop ON col.object_id = prop.major_id AND col.column_id = prop.minor_id
    where object_id = object_id(@TableName)
) t
--order by ColumnId

set @Result = @Result + '
}'

print @Result

 

标签:实体类,SQLserver,decimal,when,id,Result,表名,typ,col
From: https://www.cnblogs.com/Echoxxx/p/18108094

相关文章

  • 头歌-数据库 --SQLServer第一章 - 初识SQLServer
    第1关:创建数据库任务描述本关任务:创建你的第一个SQLServer数据库。相关知识数据库其实就是可以存放大量数据的仓库,学习数据库我们就从创建一个数据库开始吧。为了完成本关任务,你需要掌握:1.如何在Linux系统中连接SQLServer数据库,2.如何创建数据库。连接数据库和创......
  • 数据库表名和字段名,为什么忽略大小写?为什么采用下换线分割单词?
    数据库表名和字段名,为什么忽略大小写在数据库设计和使用中,表名和字段名的大小写敏感性是由数据库管理系统(DBMS)的配置和操作系统决定的。有些数据库系统默认是区分大小写的,而有些则不区分。在实际操作中,忽略大小写的原因主要有以下几点:兼容性和易用性:为了确保不同操作系......
  • SqlServer(3)SqlServer经典总结大全-数据库同步-基础知识整理-能力提升
    三、SQLServer同步复制技术实现步骤,配上详细步骤和代码语句和输出SQLServer的同步复制是一种确保数据在发布服务器和订阅服务器之间实时同步的技术。以下是同步复制的详细步骤,包括代码语句和可能的输出。1.准备工作确保两台服务器(发布服务器和订阅服务器)的网络连接是正......
  • sqlserver连接超时
    常规的连接超时,都是查看:网络是否联通防火墙是否关闭、tcp/ip协议是否启用、账号密码问题等。这种的基本上应用连不上数据库,但数据库管理器也肯定连不上。最近碰到2次特别现象就是应用连接数据库超时,但服务器上的数据库管理器连接是没问题的,数据库访问也正常。特此记录一下查了很......
  • RestCloud数据集成平台-监听SqlServer数据库表,并同步数据到MongoDB数据库表详细教程(实
    上一篇:RestCloud数据集成平台-Windows全量包安装部署详细教程1.数据源管理数据源主要用来建立与用户的数据库的链接。数据源管理主要用来对用户添加的所有数据链接进行管理,主要包括新建数据源、测试链接、修改链接、复制链接、查询链接和删除链接等功能。1.1.创建链接......
  • SQLServer一致性错误解决
    工作中碰到的问题: 执行存储过程,提示错误信息:“内部插叙处理器错误:查询处理器在执行过程中遇到意外错误”。 初步怀疑是SQLServer中表“HS_Data”出现一致性错误或分配错误等原因造成。于是先用DBCCCHECKTABLE检查表“HS_Data”(DBCCCHECKTABLE用来检查组成表或索引视图......
  • 【go】gorm中去掉默认表名后的s复数形式
    【go】gorm中去掉默认表名后的s复数形式背景使用gorm时,查询数据时mysql报错,显示表名不存在,仔细查看,报错的表名中增加了s,比如实际数据库表名是:ali_user,报错信息中显示表ali_users不存在原因gorm默认使用结构体的复数形式作为表名比如:#表结构体定义如下:typeAliUserstruc......
  • sqlserver排障手册
    一、内容1.1用于收集日志的诊断工具SQLLogScoutPSSDiagSQLTraceSSPIClientTSSV2SQLDumper1.2用于分析日志的诊断工具SQLNexusAGDiagSQL网络分析器SQLCheckSQLBenchDBTestRML实用工具SQL调用堆栈解析程序1.3 高可用性和灾难恢复(AlwaysOn可用性组)......
  • Cannot resolve com.microsoft.sqlserver:sqljdbc4:4.0解决方案
    问题:<dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>sqljdbc4</artifactId> <version>4.0</version></dependency>爆红解决方案1手动下载jar包MavenRepository:com.microsoft.sqlserver»sqljdbc4»4.0......
  • SQLServer CLR程序集创建Http函数
    设计程序集-SQLServer|MicrosoftLearnMicrosoft.VisualBasic.dllMicrosoft.VisualC.dllmscorlib.dllSystem.dllSystem.Configuration.dllSystem.Core.dllSystem.Data.dllSystem.Data.OracleClient.dllSystem.Data.SqlXml.dllSystem.Deployment.dllSyst......