Requête SQL truncate table IBM DB2
Quelqu'un peut-il me donner la syntaxe de tronquer une table dans IBM DB2.
Je m en exécutant la commande suivante: truncate table tableName immediate;
La eror DB2
SQLCODE=-104, SQLSTATE=42601, SQLERRMC=table;tronquée ;la REJOINDRE , PILOTE=3.50.152
Message: an unexpected token "table" a été trouvé après "tronquer ". Attendu jetons peuvent inclure: "REJOINDRE ".. SQLCODE=-104, SQLSTATE=42601, PILOTE=3.50.152
La syntaxe correspond à celle spécifiée dans les docs de référence d'IBM : http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=/com.ibm.db29.doc.sqlref/db2z_sql_truncate.htm
Quelle est la version de DB2 êtes-vous en cours d'exécution?
OriginalL'auteur Cshah | 2010-06-09
Vous devez vous connecter pour publier un commentaire.
Il y a un excellent article sur tronquer, voici l'Essentiel de DB2 trucs
Suit un peu la norme.(depuis la version 9.7)
DB2 exige que, dans l'IMMÉDIAT mot-clé s'ajoute l'ordinaire instruction TRUNCATE TABLE, par exemple:
TRUNCATE TABLE doit être la première instruction dans une transaction. Une transaction de départ avec TRUNCATE TABLE peut inclure d'autres états, mais si la transaction est annulée, l'instruction TRUNCATE TABLE d'opération n'est pas annulée.
DB2s TRUNCATE TABLE d'opération a un certain nombre d'arguments facultatifs, voir la documentation pour plus d'informations sur cette question; en particulier, la RÉUTILISATION de STOCKAGE argument peut être important pour ad-hoc DBA tâches.
Dans DB2 versions < 9.7, vous pouvez l'abus de l'instruction d'IMPORTATION. Malheureusement, vous avez besoin de savoir quel système d'exploitation, la commande est exécutée à partir de ce travail:
Sur les systèmes de type unix:
IMPORTER à PARTIR de /dev/null DE DEL REMPLACER DANS tablename
Sur Windows:
IMPORTER à PARTIR de NUL DE DEL REMPLACER DANS tablename
L'IMPORTATION ne peut pas être victimes de mauvais traitements dans tous les contextes. E. g., lorsque vous travaillez avec le SQL dynamique (à partir de Java/.NET/PHP/...—ne pas utiliser db2 interpréteur de lignes de commande), vous devez envelopper la commande IMPORTER un appel à ADMIN_CMD, par exemple:
IMPORT a l'air d'être admis dans une transaction impliquant d'autres opérations, mais il implique immédiatement une opération de validation.
La commande ALTER TABLE peuvent également être utilisés pour se vider rapidement une table, mais il nécessite plus de privilèges, et peut causer des problèmes avec la récupération rollforward.
Ceci a été pris à partir du site web:
http://troels.arvin.dk/db/rdbms/#bulk-truncate_table-db2
OriginalL'auteur Nick Vallely
Si vous utilisez DB2 pour AS400, IMMÉDIATE TRUNCATE TABLE ne fonctionnera PAS. L'équivallent de contourner ce problème consiste à:
puis si c'est un auto incrément d'équivalent de la colonne, exécutez:
OU la plus rapide (la plus efficace)
La syntaxe Java:
OriginalL'auteur ResourceReaper
La version de DB2 utilisez-vous? Le
truncate table
commande a été introduit dans DB2 v9 (au moins sur l'ordinateur central, qui semble être ce que vous demandez au sujet de base sur le lien).Vous pouvez avoir recours à la
delete from
option bien que cet article donne une procédure stockée façon de le faire dans DB2 v8.OriginalL'auteur paxdiablo
utilisation tronquer "table_name" immédiate
OriginalL'auteur vtokmak
C'est la référence exacte de la documentation disponible pour TRONQUER dans DB2, passant de 9,7 version
DB2 Référence pour TRONQUER
OriginalL'auteur raksja
DB2 sur z/OS V10
Vide l'un de vos tables: truncate table, suivi par commettre travail. Ex. tronquer temp;
Quelqu'un d'autre de la table: truncate propriétaire.tableau Ex: truncate étudiant.de travail ;
Je n'ai pas essayé ce lié DB2. Je ne sais pas si tronquer node2.de l'étudiant.travail; est bon.
SQL pour la création d'une liste de tables automatiquement. Substring (substr) utilisé en raison de la largeur de colonne pour le nom de la table et le créateur sont vraiment très longtemps. Vos valeurs peuvent être différentes.
OriginalL'auteur TechnoCaveman