PCB MS SQL 通过表名查询各字段信息和vb.net C# module类代码
正式表:各字段内容获取
DECLARE @tabname VARCHAR(20)
SET @tabname = 'ppeflow' SELECT @tabname AS '表名'
,(CASE
WHEN T.name = 'varchar' or T.name = 'char' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as VARCHAR(20))+ ')'
WHEN T.name = 'numeric' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as VARCHAR(20)) + ',' + CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as VARCHAR(20)) + ')'
WHEN T.name = 'decimal' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as VARCHAR(20)) + ',' + CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as VARCHAR(20)) + ')'
ELSE T.name
END) AS '字段类型与容量'
,C.name as [字段名],T.name as [字段类型]
,convert(bit,C.IsNullable) as [可否为空]
,convert(bit,case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=c.id and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = c.id AND colid=c.colid))) then 1 else 0 end)
as [是否主键]
,convert(bit,COLUMNPROPERTY(c.id,c.name,'IsIdentity')) as [自动增长]
,C.Length as [占用字节]
,COLUMNPROPERTY(C.id,C.name,'PRECISION') as [长度]
,isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as [小数位数]
,ISNULL(CM.text,'') as [默认值]
,isnull(ETP.value,'') AS [字段描述] ,('Property ' + C.name + ' AS ' +
CASE T.name
WHEN 'varchar' THEN 'String'
WHEN 'nvarchar' THEN 'String'
WHEN 'char' THEN 'String'
WHEN 'numeric' THEN 'Decimal'
WHEN 'decimal' THEN 'Decimal'
WHEN 'datetime' THEN 'DateTime'
WHEN 'int' THEN 'Integer'
WHEN 'smallint' THEN 'Short'
WHEN 'real' THEN 'Single'
WHEN 'float' THEN 'Double'
WHEN 'bit' THEN 'Boolean'
WHEN 'uniqueidentifier' THEN 'Guid'
END ) 'VB.net' ,('public ' +
CASE T.name
WHEN 'varchar' THEN 'string'
WHEN 'nvarchar' THEN 'string'
WHEN 'char' THEN 'string'
WHEN 'numeric' THEN 'decimal'
WHEN 'decimal' THEN 'decimal'
WHEN 'datetime' THEN 'DateTime'
WHEN 'int' THEN 'int'
WHEN 'smallint' THEN 'short'
WHEN 'real' THEN 'float'
WHEN 'float' THEN 'double'
WHEN 'bit' THEN 'bool'
WHEN 'uniqueidentifier' THEN 'Guid'
END
+ ' ' + C.name + ' { get; set; }') 'C#' --,ROW_NUMBER() OVER (ORDER BY C.name) AS [Row]
--,REPLACE(REPLACE(REPLACE('row_T_WF_MAIN("'+c.name+'") = ' + STUFF(STUFF(isnull(CM.text,''),1,1,''),LEN(STUFF(isnull(CM.text,''),1,1,'')),1,''),'''','"'),'getdate()','Date.Now()'),'newid()','Guid.NewGuid')AS'row'
FROM syscolumns C
INNER JOIN systypes T ON C.xusertype = T.xusertype
left JOIN sys.extended_properties ETP ON ETP.major_id = c.id AND ETP.minor_id = C.colid AND ETP.name ='MS_Description'
left join syscomments CM on C.cdefault=CM.id
WHERE C.id = object_id(@tabname) --AND convert(bit,C.IsNullable) = 0 --不为空
--AND ISNULL(CM.text,'') = ''--默认值为空
正式表:各字段内容获取(加注释,复制到C#中再将###正则替换为\n)
DECLARE @tabname VARCHAR(200)
SET @tabname = 'T_RuleTableCell' SELECT @tabname AS '表名'
,(CASE
WHEN T.name = 'varchar' or T.name = 'char' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as VARCHAR(20))+ ')'
WHEN T.name = 'numeric' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as VARCHAR(20)) + ',' + CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as VARCHAR(20)) + ')'
WHEN T.name = 'decimal' THEN T.name + '(' + CAST(COLUMNPROPERTY(C.id,C.name,'PRECISION') as VARCHAR(20)) + ',' + CAST(isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as VARCHAR(20)) + ')'
ELSE T.name
END) AS '字段类型与容量'
,C.name as [字段名],T.name as [字段类型]
,convert(bit,C.IsNullable) as [可否为空]
,convert(bit,case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=c.id and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = c.id AND colid=c.colid))) then 1 else 0 end)
as [是否主键]
,convert(bit,COLUMNPROPERTY(c.id,c.name,'IsIdentity')) as [自动增长]
,C.Length as [占用字节]
,COLUMNPROPERTY(C.id,C.name,'PRECISION') as [长度]
,isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as [小数位数]
,ISNULL(CM.text,'') as [默认值]
,isnull(ETP.value,'') AS [字段描述] ,('Property ' + C.name + ' AS ' +
CASE T.name
WHEN 'varchar' THEN 'String'
WHEN 'nvarchar' THEN 'String'
WHEN 'char' THEN 'String'
WHEN 'numeric' THEN 'Decimal'
WHEN 'decimal' THEN 'Decimal'
WHEN 'datetime' THEN 'DateTime'
WHEN 'int' THEN 'Integer'
WHEN 'smallint' THEN 'Short'
WHEN 'real' THEN 'Single'
WHEN 'float' THEN 'Double'
WHEN 'bit' THEN 'Boolean'
WHEN 'uniqueidentifier' THEN 'Guid'
END ) 'VB.net' ,( '///<summary>' + '###' +
'///' + CAST(isnull(ETP.value,'') AS VARCHAR(200)) + '###' +
'///</summary>' + '###' +
'public ' +
CASE T.name
WHEN 'varchar' THEN 'string'
WHEN 'nvarchar' THEN 'string'
WHEN 'char' THEN 'string'
WHEN 'numeric' THEN 'decimal'
WHEN 'decimal' THEN 'decimal'
WHEN 'datetime' THEN 'DateTime'
WHEN 'int' THEN 'int'
WHEN 'smallint' THEN 'short'
WHEN 'real' THEN 'float'
WHEN 'float' THEN 'double'
WHEN 'bit' THEN 'bool'
WHEN 'uniqueidentifier' THEN 'Guid'
END
+ ' ' + C.name + ' { get; set; }') 'C#' --,ROW_NUMBER() OVER (ORDER BY C.name) AS [Row]
--,REPLACE(REPLACE(REPLACE('row_T_WF_MAIN("'+c.name+'") = ' + STUFF(STUFF(isnull(CM.text,''),1,1,''),LEN(STUFF(isnull(CM.text,''),1,1,'')),1,''),'''','"'),'getdate()','Date.Now()'),'newid()','Guid.NewGuid')AS'row'
FROM syscolumns C
INNER JOIN systypes T ON C.xusertype = T.xusertype
left JOIN sys.extended_properties ETP ON ETP.major_id = c.id AND ETP.minor_id = C.colid AND ETP.name ='MS_Description'
left join syscomments CM on C.cdefault=CM.id
WHERE C.id = object_id(@tabname) --AND convert(bit,C.IsNullable) = 0 --不为空
--AND ISNULL(CM.text,'') = ''--默认值为空
临时表:各字段内容获取
SELECT
C.name as [字段名],T.name as [字段类型]
,convert(bit,C.IsNullable) as [可否为空]
,convert(bit,case when exists(SELECT 1 FROM sysobjects where xtype='PK' and parent_obj=c.id and name in (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = c.id AND colid=c.colid))) then 1 else 0 end)
as [是否主键]
,convert(bit,COLUMNPROPERTY(c.id,c.name,'IsIdentity')) as [自动增长]
,C.Length as [占用字节]
,COLUMNPROPERTY(C.id,C.name,'PRECISION') as [长度]
,isnull(COLUMNPROPERTY(c.id,c.name,'Scale'),0) as [小数位数]
,ISNULL(CM.text,'') as [默认值]
,isnull(ETP.value,'') AS [字段描述]
,('Property ' + C.name + ' AS ' +
CASE T.name
WHEN 'varchar' THEN 'string'
WHEN 'char' THEN 'string'
WHEN 'numeric' THEN 'Decimal'
WHEN 'decimal' THEN 'Decimal'
WHEN 'datetime' THEN 'DateTime'
WHEN 'int' THEN 'Integer'
WHEN 'real' THEN 'Single'
WHEN 'float' THEN 'Double'
END ) 'VB.net'
,('public ' +
CASE T.name
WHEN 'varchar' THEN 'string'
WHEN 'char' THEN 'string'
WHEN 'numeric' THEN 'decimal'
WHEN 'decimal' THEN 'decimal'
WHEN 'datetime' THEN 'DateTime'
WHEN 'int' THEN 'int'
WHEN 'real' THEN 'float'
WHEN 'float' THEN 'double'
WHEN 'bit' THEN 'bool'
END
+ ' ' + C.name + ' { get; set; }') 'C#'
--,ROW_NUMBER() OVER (ORDER BY C.name) AS [Row]
FROM tempdb..syscolumns C
INNER JOIN systypes T ON C.xusertype = T.xusertype
left JOIN sys.extended_properties ETP ON ETP.major_id = c.id AND ETP.minor_id = C.colid AND ETP.name ='MS_Description'
left join syscomments CM on C.cdefault=CM.id
WHERE C.id = object_id('tempdb..#tab2')
获取内容样式如下:

PCB MS SQL 通过表名查询各字段信息和vb.net C# module类代码的更多相关文章
- ms sql 根据表名查询 表中所有字段的属性值 sql语句
SELECT表名=case when a.colorder=1 then d.name else '' end,--表说明=case when a.colorder=1 then isnull(f.v ...
- 达梦dba_segments指定表名查询到的大小都包含哪些数据
一.结论 dba_segments指定表名查询到的段大小包含索引.约束.表字段数据(包含LOB字段)(1)表(不包含LOB字段)创建默认分配2个簇,1个簇用于存放表结构及字段数据,1个簇用于存放clu ...
- SQL多表连接查询
SQL多表连接查询 本文主要列举两张和三张表来讲述多表连接查询. 新建两张表: 表1:student 截图如下: 表2:course 截图如下: (此时这样建表只是为了演示连接SQL语句,当然实际 ...
- 图解SQL多表关联查询
图解SQL多表关联查询 网上看了篇文章关于多表连接的,感觉很好,记录下来,以便日后自己学习 内连接 左连接 右连接 全外连接 1. 查两表关联列相等的数据 ...
- PCB MS SQL 排序应用---SQL相邻数据区间值求解
其中一篇 博文中有写<PCB MS SQL 排序应用---相邻数据且相同合并处理>此篇有也应相用也同的技巧,实现相邻数据区间值求解 示例: 原数据:处理前 求出区间值:处理后 SQL 代码 ...
- 避免SQL全表模糊查询查询 下载文件时-修改文件名字
避免SQL全表模糊查询查询 1.模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like:对于like %...%(全模糊)这样的条件,是无法使用索引的,全表扫描自然效 ...
- Hvie SQL 修改表名 注释 列名注释
一.修改hive表注释 ALTER TABLE 数据库名.表名 SET TBLPROPERTIES('comment' = '新的表备注'); 二.修改hive表字段注释 ALTER TABLE 数据 ...
- MS SQL巡检系列——检查外键字段是否缺少索引
前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...
- sql一个表中两个字段合并求和
sql一个表中两个字段,合并求和 SELECT SUM(字段a+'.'+字段b) as total from TABLE
随机推荐
- Spring学习笔记_day01_ioc
本文为博主辛苦总结,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 谢谢配合! Spring_day01 spring是一站式的框架, ...
- Centos6.7 编译安装 MySQL教程
Centos6.7 编译安装 MySQL # 安装依赖包 [root@localhost ~]# yum -y install gcc gcc-c++ autoconf* automake* zlib ...
- (转)Java任务调度框架Quartz入门教程指南(二) 使用job、trigger、schedule调用定时任务
http://blog.csdn.net/zixiao217/article/details/53044890 读完第一节,我们已经对Quartz有了一个大体的认识,它可以定时帮我们执行一些处理程序, ...
- C# Winform 最大化后 任务栏还显示解决
//最大化 this.WindowState = FormWindowState.Maximized; //窗体最大化时 非全屏 不会遮盖任务栏 //去掉标题栏 this.FormBorderStyl ...
- scss基础
1.变量$ 全局 局部 .div{ $color:yellow; } 2.类似函数@mixin border-radius($radius) { }引用:@include border-radius( ...
- SGU100
Read integers A and B from input file and write their sum in output file. Input Input file contains ...
- SSHFS使用笔记
在写树莓派集群项目的时候,发现如果在树莓派上维护的代码需要非常费力才能跟本地项目代码同步,因此打算将Server端和Client端代码分开,树莓派上的Client端代码远程挂载到本地,这样做比之前要更 ...
- DP——最长上升子序列(LIS)
DP——最长上升子序列(LIS) 基本定义: 一个序列中最长的单调递增的子序列,字符子序列指的是字符串中不一定连续但先后顺序一致的n个字符,即可以去掉字符串中的部分字符,但不可改变其前后顺序. LIS ...
- web前端学习总结--HTML
web三要素: 浏览器:向服务器发起请求,下载服务器中的网页(HTML),然后执行HTML显示出内容 服务器:接受浏览器的请求,发送相应的页面到浏览器 HTTP协议:浏览器与服务器的通讯协议. HTM ...
- Linux:安装CentOS 6.x和CentOS 7.x
1,准备镜像,这里到阿里云镜像网站下载 https://opsx.alibaba.com/mirror 2,安装CentOS6.10 打开vmware workstation--> 典型--&g ...