УДАЛИТЬ * ОТ таблицы

Есть ли способ (похожий на приведенный ниже код) удалить все строки в указанной таблице с помощью С#?

SqlConnection con = new SqlConnection(conString);
con.Open();

string sql = @"DELETE*FROM compsTickers;";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();

Сейчас я получаю сообщение об ошибке:

Неправильный синтаксис рядом с '*'

Ответы

Ответ 1

В коде С# нет ничего плохого; что синтаксическая ошибка SQL.

Во всяком случае, нет необходимости в *. Вы удаляете строки, а не столбцы, из таблицы, поэтому вы не указываете удаляемые столбцы:

DELETE FROM compsTickers

Ответ 2

Вы не укажете, что столбцов DELETE FROM compsTickers достаточно.

(Также TRUNCATE TABLE compsTickers будет делать, это другой способ удаления, который может иметь смысл в зависимости от настроек журнала транзакций)

Ответ 3

Просто удалите *, поскольку это не нужно для операторов DELETE

string sql = @"DELETE FROM compsTickers;";

Ответ 4

DELETE (Transact-SQL) (ссылка)

FROM является необязательным. Вы всегда удаляетесь из таблицы, поэтому все, что вам нужно было (вам даже не нужен разделитель инструкций для одного оператора):

DELETE compsTickers

Которая опустошает таблицу

  • но не reset столбец идентичности, если какой-либо

Ответ 5

Я предлагаю использовать

  • Сохраненная процедура для выполнения всей операции.
  • Вы всегда должны избегать строковой кодировки в коде.
  • Управляйте транзакцией, если вам нужно вернуть изменения.

Ответ 6

string sql = @"DELETE FROM compsTickers;";

Вам не нужно использовать * или указать любое имя столбца в инструкции delete.

Ответ 7

Запись '*' в запросе удаления не является хорошей практикой. Поскольку мы не удаляем столбцы, мы фактически удаляем строки из таблицы.

* относится ко всем столбцам в таблице. Попробуйте использовать следующий синтаксис 'Удалить из compsTickers', за которым следует условие.

Ответ 8

Синтаксис команды delete неверен. Вы не обязаны использовать '*' в команде delete. Используйте команду string sql = @"DELETE FROM compsTickers;" для своей работы.

Спасибо.

Ответ 9

SqlConnection con = new SqlConnection(conString);
con.close();
cmd=new SqlCommand("DELETE FROM compsTickers", con);
con.Open();
int i = cmd.ExecuteNonQuery();
if(i>0)
{
 MessageBox.Show("Successful.");
}
con.Close();

Ответ 10

Ошибки будут происходить из-за отсутствия пробелов до и после "*" (должно быть "*" ).