本文推出SqlServer表转化为实体的sql代码

在VS中有可以自带生成实体类的快捷操作,但是生成的代码比较杂乱,很多东西都是不需要的,一个一个去敲又很浪费时间,关键太无聊了

在闲暇之余写一份代码供大家学习,废话不多说,直接整干货:

 1 DECLARE @TableName sysname = 'ObjeckBLL';-- 要生成实体类的表名
2 DECLARE @Result VARCHAR(MAX) = 'public class ' + @TableName + '
3 {';
4 SELECT @Result = @Result + '
5 /// <summary>
6 /// ' + CAST(t.Summary AS VARCHAR(MAX)) + '
7 /// </summary>
8 public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
9 '
10 FROM
11 (
12 SELECT REPLACE(col.name, ' ', '_') ColumnName,
13 col.column_id ColumnId,
14 CASE typ.name
15 WHEN 'bigint' THEN
16 'long'
17 WHEN 'binary' THEN
18 'byte[]'
19 WHEN 'bit' THEN
20 'bool'
21 WHEN 'char' THEN
22 'string'
23 WHEN 'date' THEN
24 'DateTime'
25 WHEN 'datetime' THEN
26 'DateTime'
27 WHEN 'datetime2' THEN
28 'DateTime'
29 WHEN 'datetimeoffset' THEN
30 'DateTimeOffset'
31 WHEN 'decimal' THEN
32 'decimal'
33 WHEN 'float' THEN
34 'float'
35 WHEN 'image' THEN
36 'byte[]'
37 WHEN 'int' THEN
38 'int'
39 WHEN 'money' THEN
40 'decimal'
41 WHEN 'nchar' THEN
42 'char'
43 WHEN 'ntext' THEN
44 'string'
45 WHEN 'numeric' THEN
46 'decimal'
47 WHEN 'nvarchar' THEN
48 'string'
49 WHEN 'real' THEN
50 'double'
51 WHEN 'smalldatetime' THEN
52 'DateTime'
53 WHEN 'smallint' THEN
54 'short'
55 WHEN 'smallmoney' THEN
56 'decimal'
57 WHEN 'text' THEN
58 'string'
59 WHEN 'time' THEN
60 'TimeSpan'
61 WHEN 'timestamp' THEN
62 'DateTime'
63 WHEN 'tinyint' THEN
64 'byte'
65 WHEN 'uniqueidentifier' THEN
66 'Guid'
67 WHEN 'varbinary' THEN
68 'byte[]'
69 WHEN 'varchar' THEN
70 'string'
71 ELSE
72 'UNKNOWN_' + typ.name
73 END ColumnType,
74 CASE
75 WHEN col.is_nullable = 1
76 AND typ.name IN ( 'bigint', 'bit', 'date', 'datetime', 'datetime2', 'datetimeoffset', 'decimal',
77 'float', 'int', 'money', 'numeric', 'real', 'smalldatetime', 'smallint',
78 'smallmoney', 'time', 'tinyint', 'uniqueidentifier'
79 ) THEN
80 '?'
81 ELSE
82 ''
83 END NullableSign,
84 ISNULL(ep.value, col.name) AS Summary
85 FROM sys.columns col
86 JOIN sys.types typ
87 ON col.system_type_id = typ.system_type_id
88 AND col.user_type_id = typ.user_type_id
89 LEFT JOIN sys.extended_properties ep
90 ON ep.major_id = col.object_id
91 AND ep.minor_id = col.column_id
92 WHERE col.object_id = OBJECT_ID(@TableName)
93 ) t
94 ORDER BY ColumnId;
95 SET @Result = @Result + '
96 }';
97 PRINT @Result;

来看看效果:

有没有瞬间觉得很爽,排版清晰,结构清楚

今天的分享到此结束,有需要的可以关注留言讨论

能帮朋友解决问题的记得给个关注支持一下,以后将多多分享SQL SERVER 相关知识

SQL ERVER 表转化为C#实体(SQL 代码)的更多相关文章

  1. SQL查询表,表的所有字段名,SQL查询表,表的所有字段名

    SQL查询表,表的所有字段名 2011-07-29 10:21:43|  分类: SQLServer |  标签:表  sql  字段   |举报 |字号 订阅   SQL查询表,表的所有字段名 SQ ...

  2. SQL添加表字段以及SQL查询表,表的所有字段名

    通用式: alter table [表名] add [字段名] 字段属性 default 缺省值 default 是可选参数 增加字段: alter table [表名] add 字段名 smalli ...

  3. SqlServer数据库表生成C# Model实体类SQL语句——补充

    在sql语句最前边加上  use[数据库名] 原链接:https://www.cnblogs.com/jhli/p/11552105.html   --[SQL骚操作]SqlServer数据库表生成C ...

  4. oracle SQL多表查询

    SQL多表查询 1.集合理论 1.1 什么是集合 具有某种特定性质的事物的总体. 集合的特性:无序性.互异性.确定性. 一个集合可以小到从一个表中取出一行中的一列.              1 ro ...

  5. SQL多表联合查询

    通过连接运算符可以实现多个表查询.连接是关系数据库模型的主要特点,也是它区别于其它类型数据库管理系统的一个标志. 在关系数 据库管理系统中,表建立时各数据之间的关系不必确定,常把一个实体的所有信息存放 ...

  6. [转]Azure 表存储和 Windows Azure SQL Database - 比较与对照

    本文转自:https://msdn.microsoft.com/library/azure/jj553018 更新时间: 2014年10月 作者:Valery Mizonov 和 Seth Manhe ...

  7. SQL 创建表

    SQL 创建表是通过SQL CREATE TABLE 语句来实现,该语句是DDL SQL语句.CREATE TABLE语句用于创建用于存储数据的表.在创建表时,可以为列定义主键.惟一键和外键等完整性约 ...

  8. SQL多表连接查询(详细实例)

    转载博客:joeleo博客(http://www.xker.com/page/e2012/0708/117368.html) 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:stud ...

  9. Oracle使用SQL传输表空间

    源环境:RHEL 6.4 + Oracle 11.2.0.4 目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机 要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的 ...

  10. SQL多表连接查询

    SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student  截图如下: 表2:course  截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...

随机推荐

  1. QtDesigner安装

    QtDesigner简单介绍 Qtdesigner是Python设计里面一个非常实用的工具,使得人们编写qt界面可以不仅仅是使用纯代码,而可以在可视化的基础上设置,非常方便. QtDesigner安装 ...

  2. MordernC++之 auto 和 decltype

    在C++11标准中,auto作为关键字被引入,可以用来自动推导变量类型,auto可以用于定义变量,函数返回值,lambda表达式等,在定义变量时可以使用auto来代替具体类型,编译器根据变量初始化表达 ...

  3. day128:MySQL进阶:MySQL安装&用户/权限/连接/配置管理&MySQL的体系结构&SQL&MySQL索引和执行计划

    目录 1.介绍和安装 2.基础管理 2.1 用户管理 2.2 权限管理 2.3 连接管理 2.4 配置管理 3.MySQL的体系结构 4.SQL 5.索引和执行计划 1.介绍和安装 1.1 数据库分类 ...

  4. 部署:Mysql8和Mysql5.7部署同一服务器

    问题描述:将Mysql8.0.22和Mysql5.7.32部署在同一环境下 操作系统:centos7.8 数据库:Mysql8.0.22.Mysql5.7.32 版本 占用端口 实例名 数据文件 端口 ...

  5. Spring注解@Conditional相关用法

    1.@Conditional注解 @Conditional 是Spring4新提供的注解. 它的作用是按照一定的条件进行判断,满足条件给容器注册bean,否则不注入. 可以作用在方法上,也可以作用在类 ...

  6. 用C#发送post请求,实现更改B站直播间标题[简单随笔]

    第一次发这样的网络数据包.记录一下. API参考 https://github.com/SocialSisterYi/bilibili-API-collect/blob/master/live/man ...

  7. 麻了,一个操作把MySQL主从复制整崩了

    前言 最近公司某项目上反馈mysql主从复制失败,被运维部门记了一次大过,影响到了项目的验收推进,那么究竟是什么原因导致的呢?而主从复制的原理又是什么呢?本文就对排查分析的过程做一个记录. 主从复制原 ...

  8. 2023-02-21:请用go语言调用ffmpeg,解码mp4文件,输出视频信息和总帧数。

    2023-02-21:请用go语言调用ffmpeg,解码mp4文件,输出视频信息和总帧数. 答案2023-02-21: 使用 github.com/moonfdd/ffmpeg-go 库,这个库比go ...

  9. 2022-12-31:以下go语言代码输出什么?A:1 1;B:-1 1;C:-1 -1;D:编译错误。 package main import “fmt“ func main() { a

    2022-12-31:以下go语言代码输出什么?A:1 1:B:-1 1:C:-1 -1:D:编译错误. package main import "fmt" func main() ...

  10. Django4全栈进阶之路3 apps.py 文件

    在 Django 4 中,每个应用(app)都需要定义一个 apps.py 文件,用于配置应用的基本信息,如应用的名称.显示名称.图标.默认路径.启动时需要执行的操作等.apps.py 文件是一个 P ...