DECLARE @TableName sysname = 'TableName';
DECLARE @Result VARCHAR(MAX) = 'public class ' + @TableName + '
{';
SELECT @Result = @Result + '
/// <summary>
/// ' + CAST(t.Summary AS VARCHAR(MAX)) + '
/// </summary>
public ' + ColumnType + NullableSign + ' ' + ColumnName + ' { get; set; }
'
FROM
(
SELECT REPLACE(col.name, ' ', '_') ColumnName,
col.column_id ColumnId,
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,
ISNULL(ep.value, col.name) AS Summary
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 ep
ON ep.major_id = col.object_id
AND ep.minor_id = col.column_id
WHERE col.object_id = OBJECT_ID(@TableName)
) t
ORDER BY ColumnId;
SET @Result = @Result + '
}';
PRINT @Result;

最新文章

  1. 以下C#程序的输出结果是( )。
  2. 使用markdown编辑evernote(印象笔记)的常用方法汇总
  3. [NOIP2014] 提高组 洛谷P1351 联合权值
  4. (01背包 当容量特别大的时候) Knapsack problem (fzu 2214)
  5. HDU 4349 Xiao Ming&#39;s Hope
  6. (微信API接口开发) 使用HttpWebRequest进行请求时发生错误:基础连接已关闭,发送时发生错误处理
  7. 002..NET MVC实现自己的TempBag
  8. sso笔记
  9. 解决iScroll中事件点击一次却触发两次的问题
  10. sleep与wait的区别,详细解答(通过代码验证)
  11. 为什么重写 equals 方法 必须重写 hashCode
  12. linux C 文件操作之fscanf()
  13. 十二、Hadoop学习笔记————Hive的基本原理
  14. Django笔记--视图
  15. js中 变量的解构赋值
  16. PFM 图片格式
  17. apache服务器的常用功能及设置
  18. jQuery 移除事件与模拟事件
  19. 浅析java构造函数前的访问限定符问题
  20. 利用mvn deploy命令上传包(转)

热门文章

  1. VSFTP日志文件详解
  2. Logstash:多个配置文件(conf)
  3. Tomcat 简单容器化
  4. Unable to connect to web server &#39;IIS Express&#39;(无法连接到Web服务器“IIS Express”)的解决方式-Jexus Manager
  5. px与em的区别
  6. mvc 返回json格式时间格式化
  7. Android Activity之间的数据传递
  8. web文件上传的总结(一)
  9. OpenStack Train版 简单部署流程
  10. Centos 7 修改网卡名称、静态IP