У меня проблема с клиентом. У меня есть этот код:
var conn = new SqlConnection(Util.GetConnectionString());
var DataCommand = new SqlCommand();
var sql = "";
// subseccion
try
{
sql = "TRUNCATE TABLE preview_" + tablename;
DataCommand = new SqlCommand(sql, conn);
DataCommand.Connection.Open();
int numcol = DataCommand.ExecuteNonQuery();
sql = "insert into preview_" + tablename+ " select * from " + tablename;
DataCommand = new SqlCommand(sql, conn);
DataCommand.ExecuteNonQuery();
}
catch (Exception ex)
{
var latest_error = ex.Message;
Util.Add_Event_Log(latest_error);
}
finally
{
DataCommand.Dispose();
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Dispose();
}
Это делается следующим образом: я даю имя таблицы, она TRUNCATE таблицы, затем копирует информацию из "таблицы" в "preview_table", и она работает как положено.
Однако мы обнаружили, что если мы не дадим разрешение TRUNCATE для этой таблицы, то произойдет сбой. Но моя проблема в том, что он не только завершается ошибкой, но и удаляет текущий сеанс (и может также перезапустить процесс сервера) .
Могу поспорить, что это проблема с сервером (server 2003), возможно, она не исправлена или что-то еще, потому что я работаю внутри части try-catch, поэтому она не должна завершаться таким образом.
Мои клиенты говорят, что проблема в коде.
Но я не уверен, может быть, мне не следует использовать команду sql в цепочке.