如何在c#代码中执行带GO语句的SQL文件

 我来答
拉风人物0789
2013-10-18 · TA获得超过220个赞
知道答主
回答量:100
采纳率:33%
帮助的人:87.2万
展开全部
遇到了两个问题:
1. 因为SQL文件中有“GO”语句,执行时报错“Incorrect syntax near 'GO'.”。
2. 如果将SQL文件中有“GO”语句全部去掉,则可能出现SQL运行错误。原因是去掉“GO”后,等于整个文件的内容一次执行,但是SQL文件有可能后面的内容需要在前面某些语句已经执行的基础上才能执行的。
解决的办法是:用一个StringBuilder,然后一行一行的读SQL文件,如果该行的内容不是“GO”,就向StringBuilder后Append。如果是“GO”,就执行StringBuilder的内的SQL语句,然后清空StringBuilder。这样就能达到与直接执行带“GO”语句的SQL文件一样的效果。
代码如下:private static void ExecuteSQLFile(String sqlFileName){SqlConnection connecction = null;try{connecction = new SqlConnection(@uid=XXXX; pwd=XXXX; server=XXXX; database=XXXX; connection timeout=30);
SqlCommand command = connecction.CreateCommand();
connecction.Open();
FileStream stream = new FileStream(sqlFileName, FileMode.Open);
StreamReader reader = new StreamReader(stream);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式