项目结构更新、C#代码执行sql文件

对于项目中,给客户安装后,后期的功能修改会涉及到一些表结构的调整。由于客户的层次高低不同,还有一些无法直接发sql文件线客户自己执行,特别是一些加密的存储过程。故开发了一个sql语句执行的小工具给客户使用。其中最经常用到的就是执行sql文件。

方法是:把执行的列表与sql文件都放到资源文件中,程序直接读取执行。文件也可以经过加密与解解。每次给客户发送更新的执行程序,或者客户直接从网上进行下载更新。

执行分两种,

1、少量的结构表调整,写成sql语句的形式直接调用执行。

2、涉及到存储过程或复杂的结构与数据调整,则写在sql文件,然后读取执行。

问题:

1、go是分析器的一个命令,写到sql文件中,在执行时会报错。

2、对于create table和create procedure等必须是在执行语句中的第一句,否则也会报错。

问题解决也很简单,就是在sql文件中使用特殊的分隔字符,把多个sql语句分隔开来按顺执行。一般在分析器中都会使用到go,所以也可以把go进行分隔字符来分隔sql执行串。

 

string[] sqls= Regex.Split(sql, "GO", RegexOptions.IgnoreCase);

由于Go一般在语句中都单独一行,比较稳妥的方式如下:

string[] sqls= Regex.Split(sql, @"/r/nGO/r/n", RegexOptions.IgnoreCase);

 

其它的编写都比较简单。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值