Supprimer des enregistrements (Gestion des données)
Récapitulatif
Supprime tous les enregistrements ou le sous-ensemble sélectionné de la saisie.
Si les enregistrements en entrée appartiennent à une classe d'entité ou à une table, tous les enregistrements sont supprimés. Si les enregistrements en entrée appartiennent à une couche ou à une vue tabulaire sans sélection, tous les enregistrements sont supprimés.
Utilisation
-
Le paramètre Enregistrements en entrée peut être une table INFO ou dBASE, une table ou une classe d'entités de géodatabase fichier ou personnelle, un fichier de formes, une couche ou une vue tabulaire.
-
Si cet outil est utilisé sur les données d'entité, l'enregistrement entier, y compris la géométrie, est supprimé.
-
Si une couche ou une vue tabulaire est entrée, et que la couche ou la vue tabulaire ne comporte aucune sélection, tous les enregistrements sont supprimés. Si une table est entrée, tous les enregistrements sont supprimés.
Remarque :La suppression de tous les enregistrements d'une table contenant un grand nombre d'enregistrements peut prendre beaucoup de temps. Pour supprimer tous les enregistrements de la table, utilisez plutôt l'outil Tronquer table. Consultez la documentation relative à Tronquer table pour prendre connaissance des précautions d'utilisation.
-
Dans ArcMap et lorsque vous utilisez une couche ou une vue tabulaire sans sélection comme entrée, l'utilisation de cet outil dans une session de mise à jour permet d'annuler l'opération Supprimer des lignes à l'aide des commandes annuler/répéter.
Syntaxe
Paramètre | Explication | Type de données |
in_rows |
Classe d'entités, couche, table ou vue tabulaire dont les enregistrements sont supprimés. | Table View |
Exemple de code
Le script de fenêtre Python ci-dessous illustre l'utilisation de la fonction DeleteRows en mode immédiat.
import arcpy
from arcpy import env
env.workspace = "C:/data"
arcpy.CopyRows_management("accident.dbf", "C:/output/accident2.dbf")
arcpy.DeleteRows_management("C:/output/accident2.dbf")
Le script autonome suivant montre comment utiliser la fonction DeleteRows pour supprimer des lignes à partir d'une expression.
# Name: DeleteRows_Example2.py
# Description: Delete rows from a table based on an expression
# Import system modules
import arcpy
from arcpy import env
try:
# Set environment settings
env.workspace = "C:/data"
# Set local variables
inTable = "accident.dbf"
outTable = "C:/output/new_accident.dbf"
tempTableView = "accidentTableView"
expression = arcpy.AddFieldDelimiters(tempTableView, "Measure") + " = 0"
# Execute CopyRows to make a new copy of the table
arcpy.CopyRows_management(inTable, outTable)
# Execute MakeTableView
arcpy.MakeTableView_management(outTable, tempTableView)
# Execute SelectLayerByAttribute to determine which rows to delete
arcpy.SelectLayerByAttribute_management(tempTableView, "NEW_SELECTION", expression)
# Execute GetCount and if some features have been selected, then execute
# DeleteRows to remove the selected rows.
if int(arcpy.GetCount_management(tempTableView).getOutput(0)) > 0:
arcpy.DeleteRows_management(tempTableView)
except Exception as e:
# If an error occurred, print line number and error message
import traceback
import sys
tb = sys.exc_info()[2]
print("Line {0}".format(tb.tb_lineno))
print(e.message)