正式表:各字段内容获取

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类代码的更多相关文章

  1. ms sql 根据表名查询 表中所有字段的属性值 sql语句

    SELECT表名=case when a.colorder=1 then d.name else '' end,--表说明=case when a.colorder=1 then isnull(f.v ...

  2. 达梦dba_segments指定表名查询到的大小都包含哪些数据

    一.结论 dba_segments指定表名查询到的段大小包含索引.约束.表字段数据(包含LOB字段)(1)表(不包含LOB字段)创建默认分配2个簇,1个簇用于存放表结构及字段数据,1个簇用于存放clu ...

  3. SQL多表连接查询

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

  4. 图解SQL多表关联查询

      图解SQL多表关联查询     网上看了篇文章关于多表连接的,感觉很好,记录下来,以便日后自己学习  内连接     左连接     右连接       全外连接   1. 查两表关联列相等的数据 ...

  5. PCB MS SQL 排序应用---SQL相邻数据区间值求解

    其中一篇 博文中有写<PCB MS SQL 排序应用---相邻数据且相同合并处理>此篇有也应相用也同的技巧,实现相邻数据区间值求解 示例: 原数据:处理前 求出区间值:处理后 SQL 代码 ...

  6. 避免SQL全表模糊查询查询 下载文件时-修改文件名字

    避免SQL全表模糊查询查询   1.模糊查询效率很低: 原因:like本身效率就比较低,应该尽量避免查询条件使用like:对于like %...%(全模糊)这样的条件,是无法使用索引的,全表扫描自然效 ...

  7. Hvie SQL 修改表名 注释 列名注释

    一.修改hive表注释 ALTER TABLE 数据库名.表名 SET TBLPROPERTIES('comment' = '新的表备注'); 二.修改hive表字段注释 ALTER TABLE 数据 ...

  8. MS SQL巡检系列——检查外键字段是否缺少索引

    前言感想:一时兴起,突然想写一个关于MS SQL的巡检系列方面的文章,因为我觉得这方面的知识分享是有价值,也是非常有意义的.一方面,很多经验不足的人,对于巡检有点茫然,不知道要从哪些方面巡检,另外一方 ...

  9. sql一个表中两个字段合并求和

    sql一个表中两个字段,合并求和 SELECT SUM(字段a+'.'+字段b) as total  from TABLE

随机推荐

  1. django-Celery分布式队列简单使用

    介绍: Celery 是一个简单.灵活且可靠的,处理大量消息的分布式系统,并且提供维护这样一个系统的必需工具. 它是一个专注于实时处理的任务队列,同时也支持任务调度. worker:是一个独立的进程, ...

  2. JavaScript ES 数组系列

    正文从这开始- ECMAScript 5.1 中提供的数组方法 其中部分方法,ECMAScript 3 就出现了,但是本文不再细分. ECMA-262/5.1 规范:https://www.ecma- ...

  3. 结果缓冲区 resbuf具体用法

    struct resbuf *rb; rb=acutBulidlist(RTSTR,text(), rtpoint,,,,,) 创建圆用法. acdbEntGet 返回结果缓冲区  然后 rb-> ...

  4. 一个好玩的 屏蔽别人审查元素F12 右键及其他复制粘贴等

    有的时候自己写的私下的个人小页面 里面有些自己的小秘密 或者别的东西 不想人别人审查元素看见 所以我提供了一段不让别人审查元素的代码(我个人比较喜欢弄有意思的东西  喜欢玩 ) //屏蔽右键菜单doc ...

  5. iOS标准库中常用数据结构和算法之查找

    参数: key: [in] 要查找的元素.base:[in] 数组元素的首地址.nelp: [in/out] 数组的元素个数指针.width: [in] 数组中每个元素的尺寸.compar: [in] ...

  6. redis中关于使用string类型还是hash类型

    前篇:最近在做一个将redis中大数据量进行合并缩减优化的工作,其中一项按月将数据进行合并.将一个月的数据放入一个key-value键值对中. 例:p2d20180901-3.p2d20180902- ...

  7. NTP测试1

    ntp server A : 10.101.75.8 B : 10.101.75.38 B: [root@r10n16313.sqa.zmf /home/ahao.mah] #cat /etc/ntp ...

  8. Spring Boot静态资源处理

    Spring Boot静态资源处理 8.8 Spring Boot静态资源处理 当使用Spring Boot来开发一个完整的系统时,我们往往需要用到前端页面,这就不可或缺地需要访问到静态资源,比如图片 ...

  9. Tomcat关闭后,重新启动,session中保存的对象为什么还存在解决方法

    Tomcat关闭后,重新启动,session中保存的对象为什么还存在各们朋友大家好:         当我关闭Tomcat,重新启动后,session中保存的对象还依然存在,仍然可以使用,不知这是什么 ...

  10. Grails里DOMAIN类的一对一,一对多,多对多关系总结及集成测试

    终于干完这一章节,收获很多啊. 和DJANGO有类似,也有不同. User.groovy: package com.grailsinaction class User { String loginId ...