Je dois ajouter une colonne d'indicateur de suppression aux 40 tables utilisateur d'une base de données. Je pourrais écrire un script pour faire une boucle sur sys.tables, mais je pensais vérifier et voir si quelqu'un avait une meilleure solution, ou pré-créé sql pour ce scénario.Ajout d'une colonne à toutes les tables utilisateur dans t-sql
13
A
Répondre
31
Il y a une procédure non documentée, mais bien connu stocké sp_msforeachtable:
exec sp_msforeachtable 'alter table ? add flag bit not null default 0';
11
Non, c'est une boucle manuelle.
Ou vous pourriez construire une instruction SQL unique bien sûr ...
SELECT
'ALTER TABLE ' + T.name + ' ADD foo int NULL'
FROM
sys.tables AS T
WHERE
T.is_ms_shipped = 0
Ou la non documentée
EXEC sys.sp_MSforeachtable 'ALTER TABLE ? ADD foo int NULL'
+1 mais ... seraphym demande un moyen de supprimer une colonne . Bien que votre déclaration puisse facilement être réécrite, le nom de la colonne cible doit être uniforme dans toutes les tables. –
psasik, seraphym veut ajouter une colonne nommée 'delete' à chaque table, pas supprimer une colonne de chaque table. –
très cool, merci pour votre aide! – seraphym