c# - How to run SQL File having large number of lines? -


i having sql file(filenamescript) having more 10k lines of code. each block of sql starts go , ends go. while executing file c#, getting exception near go statements. when running same file in sql server working fine.

con.connectionstring = sqlconn; fileinfo file = new fileinfo(filenamescript); string script = file.opentext().readtoend(); sqlcommand command = new sqlcommand(script, con); con.open(); command.executenonquery(); close(); 

i think executenonquerry not able handle many \n,\r,and \t file read stored in single line many \n , \r. there other method same? in advance.

no, issue not length of file, nor existence of \r and/or \n characters. because executing sql using method can run single batch, , script having go statements causes multiple batches.

one possibility split text on keyword go , execute each individual part:

con.connectionstring = sqlconn; var commands = file.readalltext(filenamescript).split(new []{"go"},stringsplitoption.removeemptyentries); con.open(); foreach(var batch in commands) {     sqlcommand command = new sqlcommand(batch, con);     command.executenonquery(); } con.close() 

additionally, wrap in transaction ensure batches executed atomically.

an alternative provided in question: how execute large sql script (with go commands) c#


Comments

Popular posts from this blog

Why does Ruby on Rails generate add a blank line to the end of a file? -

keyboard - Smiles and long press feature in Android -

node.js - Bad Request - node js ajax post -