반응형
C# 에서 MSSQL Script 실행하기
간단한 방법이 있지만, 프로시저의 경우 실행시 오류가 발생한다.
How do I execute a large SQL script (with GO commands) from c#?
http://stackoverflow.com/questions/40814/how-do-i-execute-a-large-sql-script-with-go-commands-from-c
How do I execute a large SQL script (with GO commands) from c#?의 소스를 조금 변경했다.
실제로 MSSQL에 줄바꿈으로 들어 갈때는
"\r\n"을 넣어 주면 보기 좋게 프로시저의 줄바꿈 처리가 된다.
char(10) + char(13)이라고 누가 인터넷에 적었는 데 이건 좀..
간단한 방법이 있지만, 프로시저의 경우 실행시 오류가 발생한다.
How do I execute a large SQL script (with GO commands) from c#?
http://stackoverflow.com/questions/40814/how-do-i-execute-a-large-sql-script-with-go-commands-from-c
How do I execute a large SQL script (with GO commands) from c#?의 소스를 조금 변경했다.
실제로 MSSQL에 줄바꿈으로 들어 갈때는
"\r\n"을 넣어 주면 보기 좋게 프로시저의 줄바꿈 처리가 된다.
char(10) + char(13)이라고 누가 인터넷에 적었는 데 이건 좀..
private void ExecuteBatchNonQuery(string sql, SqlConnection conn) {
string sqlBatch = string.Empty;
SqlCommand cmd = new SqlCommand(string.Empty, conn);
conn.Open();
sql += "\nGO"; // make sure last batch is executed.
try {
foreach (string line in sql.Split(new string[2] { "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries)) {
if (line.ToUpperInvariant().Trim() == "GO") {
cmd.CommandText = sqlBatch;
cmd.ExecuteNonQuery();
sqlBatch = string.Empty;
} else {
sqlBatch += line + "\r\n";
}
}
} finally {
conn.Close();
}
}