web-dev-qa-db-fra.com

DELETE * FROM table

Existe-t-il un moyen (similaire au code ci-dessous) de supprimer toutes les lignes d'une table spécifiée à l'aide de c #?

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

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

En ce moment je reçois une erreur: 

Syntaxe incorrecte près de '*'

14
locoboy

Il n'y a rien de mal avec votre code C #; c'est une erreur de syntaxe SQL.

Quoi qu'il en soit, le * n'est pas nécessaire. Vous supprimez rows , not columns , d'une table, vous ne spécifiez donc pas de colonnes à supprimer:

DELETE FROM compsTickers
47
BoltClock

Vous ne spécifiez pas de colonnes DELETE FROM compsTickers est suffisant.

(De plus, TRUNCATE TABLE compsTickers fera l'affaire, c'est une méthode de suppression différente, qui pourrait avoir un sens en fonction des paramètres de votre journal des transactions)

16
cairnz

Supprimez simplement le * car il n'est pas nécessaire pour les instructions DELETE 

string sql = @"DELETE FROM compsTickers;";

10
codingbadger

DELETE (Transact-SQL) (lien)

FROM est facultatif. Vous êtes toujours en train de partir d'une table, alors tout ce dont vous aviez besoin était (vous n'avez même pas besoin d'un délimiteur de déclaration, pour une seule déclaration):

DELETE compsTickers

Qui vide la table

  • mais ne réinitialise pas la colonne identité, le cas échéant
3
RichardTheKiwi

Écrire '*' dans la requête de suppression n'est pas une bonne pratique. Puisque nous ne supprimons pas de colonnes, nous supprimons en réalité des lignes de la table.

Le * fait référence à toutes les colonnes du tableau. Essayez d'utiliser la syntaxe suivante 'Supprimer de compsTickers' suivi de la condition where.

0
chetan

La syntaxe de la commande delete est incorrecte. Vous n'êtes pas obligé d'utiliser '*' dans la commande delete. Utilisez la commande string sql = @"DELETE FROM compsTickers;" pour votre travail.

Merci.

0
FIre Panda
string sql = @"DELETE FROM compsTickers;";

Vous n'avez pas besoin d'utiliser * ni de spécifier un nom de colonne dans l'instruction de suppression.

0
Alaa

Je vais suggérer d'utiliser le 

  1. Procédure stockée pour effectuer toutes les opérations.
  2. Vous devez toujours éviter la chaîne codée en dur dans le code.
  3. Gérez la transaction au cas où vous auriez besoin de revenir aux modifications.
0
Sonal Satpute