正式表:各字段内容获取

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. cookie范例

    GET /locate/api/getLocByIp?key=C6E22B7D480E3312C74EC7EF013E50C5&callback=bowlder.cb._0 HTTP/1.1 ...

  2. C#---EF映射MySQL

    使用EF CodeFirst连接MySql数据库 如何使用EF CodeFirst连接MySql数据库? 我们这篇文章介绍怎么使用EF连接MySql 作者的环境 VS2017.Win10.MySql5 ...

  3. PHP连接mysql8.0出错“SQLSTATE[HY000] [2054] The server requested authentication method unkno…

    今天安装安装一个叫得推校园O2O系统的使劲都说连接不上服务器. 下面是安装说明,我直接进行3步骤,导入数据库配置文件,结果就显示题目报错的内容 安装说明: 直接输入程序目录即可 http://loca ...

  4. img、a标签的使用

    <!doctype html><html><head><meta charset="utf-8"><title>无标题文 ...

  5. Java数值数学类

    Java数值数学类 序号 方法与描述 1 xxxValue()  将 Number 对象转换为xxx数据类型的值并返回. 2 compareTo()  将number对象与参数比较. 3 equals ...

  6. PAT (Advanced Level) Practice(更新中)

    Source: PAT (Advanced Level) Practice Reference: [1]胡凡,曾磊.算法笔记[M].机械工业出版社.2016.7 Outline: 基础数据结构: 线性 ...

  7. Unittest加载执行用例的方法总结

    前言 说到测试框架,unittest是我最先接触的自动化测试框架之一了, 而且也是用的时间最长的, unittest框架有很多方法加载用例,让我们针对不同的项目,不同项目的大小及用例的多少自己选择加载 ...

  8. SprinMVC接收参数乱码解决篇

    1.Spring 默认的字符编码格式为iso-8859-1,为此Spring专门提供了字符过滤器org.springframework.web.filter.CharacterEncodingFilt ...

  9. 洛谷 1486 郁闷的出纳员【Treap】

    [题意概述] 要求维护一个序列支持以下操作: 1,插入元素x: 2,把序列的所有元素加上x: 3,把序列的所有元素减去x,同时低于一个给定的下限的元素马上被删除: 4,询问序列中第k大的元素. [题解 ...

  10. 使用命令行打开vscode

    今天看到一个博客,直接使用code . 就可以打开vscode