[转]基于SQL脚本将数据库表及字段提取为C#中的类

摘要:
开发时,勉不了需要使用SQL直接与数据库交互,这时对于数据库中的表名及字段名会使用的比较多。如果每使用一次都复制一个,实在蛋疼。所以就考虑将其做成const常量。但是数据库中的表和字段相当多,一个一个敲,不但累,还有可能敲错。要保证正确,最好的办法当然是使用工具或者脚本。这里提供一个SQL脚本的实现。

开发时,勉不了需要使用SQL直接与数据库交互,这时对于数据库中的表名及字段名会使用的比较多。如果每使用一次都复制一个,实在蛋疼。所以就考虑将其做成const常量。但是数据库中的表和字段相当多,一个一个敲,不但累,还有可能敲错。要保证正确,最好的办法当然是使用工具或者脚本。

这里提供一个SQL脚本的实现。

原理:获取数据库的表--->遍历每个表中的字段--->生成数据

SQL代码

DECLARE @tableName VARCHAR(MAX)
DECLARE @tableCount int
DECLARE @tableIndex int
DECLARE @tempTable TABLE
(
DATA VARCHAR(MAX)
)

SELECT @tableCount=COUNT(*) FROM SysObjects WHERE XType='U'
-- XType='U':表示所有用户表;
--XType='S':表示所有系统表;
SET @tableIndex=1

WHILE @tableIndex<=@tableCount

BEGIN
SELECT @tableName=NAME
FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY NAME) AS TempNO,NAME FROM SysObjects
WHERE XType='U'
) TEMP
WHERE TempNO=@tableIndex
INSERT INTO @tempTable VALUES('')
INSERT INTO @tempTable VALUES('#region ' +@tableName)
INSERT INTO @tempTable VALUES('public sealed class ' +@tableName+'{')

INSERT INTO @tempTable SELECT 'public const string '+name+'="'+name+'";' FROM syscolumns WHERE id in
(SELECT id FROM sysobjects WHERE name=@tableName)

INSERT INTO @tempTable VALUES( '}')
INSERT INTO @tempTable VALUES('#endregion')
INSERT INTO @tempTable VALUES('')
SET @tableIndex+=1
END

SELECT * FROM @tempTable

生成的结果

SQL中的结果图

基于SQL脚本将数据库表及字段提取为C#中的类

C#中的结果图

基于SQL脚本将数据库表及字段提取为C#中的类

具体可以依据需要作出调整

免责声明:文章转载自《[转]基于SQL脚本将数据库表及字段提取为C#中的类》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇【Spring】07 后续的学习补充 vol1Style.BasedOn 属性下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

2005数据库脚本在SQL2000上执行

在SQL2005上生成一个creat数据库脚本文件,然后在SQL2000上执行的时候,出现问题:“未能找到存储过程 'sys.sp_addextendedproperty'。”解决办法: 1、将脚本放在2005平台执行; 2、在2005环境生成脚本时修改配置:工具/选项/编写脚本/为服务器版本编写脚本/选择SQL Server 2000。这样生成的脚本,在...

Django学习篇:ORM

目录 Django ORM中常用字段和参数 一些说明: 常用字段: 1.AutoField 2.IntegerField 3.CharField Django ORM中常用字段和参数 一些说明: 表myapp_person的名称是自动生成的,如果你要自定义表明,需要在model的Meta类中指定db_table参数,强烈建议使用小写表...

灰度环境

转载: https://www.cnblogs.com/rawboys/p/11656433.html 预发布环境: 1、只是一台服务器 2、没有真实的流量 3、连线上数据库 疑问:如果某一待上线需求,改动的是数据库表结构,怎么处理? 先把预发布环境使用的数据库切换为测试环境使用的数据库 根据实际部署过程,如果有必要,接着,可有针对性的测试下数据库的变更是...

使用TRY CATCH进行SQL Server异常处理

TRY...CATCH是Sql Server 2005/2008令人印象深刻的新特性.提高了开发人员异常处理能力.没有理由不尝试一下Try.. Catch功能.    *      TRY 块 - 包含可能产生异常的代码或脚本    *      CATCH 块 - 如果TRY块出现异常,代码处理流将被路由到CATCH块.在这里你可以处理异常,记录日志等....

修改SQL Server2005 sa密码方法

在安装SQL server2005时没有设定sa的秘密,但其又没有默认空密码,所以,修改密码是个问题。 在SQL Server2005下修改sa密码的一种方法如下: 使用SQL Server2005的管理器(SQL Server Management Studio )登入数据库,登入时选择windows身份验证,即可登录,登录后,选中系统数据库,新建如下查...

C# 连接Oracle数据库,免安装oracle客户端

一、方案1 首先下面的内容,有待我的进一步测试和证实。18.12.20 被证实了,还需要安装Oracle客户端,或者本机上安装oracle数据库软件。 18.12.20 1.下载Oracle.ManagedDataAccess.dll 2.添加到C#引用 3.命名空间引用 using Oracle.ManagedDataAccess.Client; 4....