2009-11-22 6 views

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'; 
+0

+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. –

+3

psasik, seraphym veut ajouter une colonne nommée 'delete' à chaque table, pas supprimer une colonne de chaque table. –

+0

très cool, merci pour votre aide! – seraphym

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'