Dropper une colonne avec toutes les contraintes liées
2 réponses
Yanos El Guerilleros
Bonjour,
J'ai un petit soucis, j'aurais besoin de dropper une colonne qui contient
une valeur par défaut, vu que cette contrainte n'est pas nommée par le
développeur, je me retrouve avec un nom de contrainte autogénéré et comme
j'ai plusieurs bases à mettre à jour j'ai un souci pour dropper cette
contrainte de manière automatique.
Je dois faire un script de mise à jour pour une trentaine de commerciaux et
j'ai pas envie de le faire à la main :)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
el.c. - myLittleTools.net
Bonjur Yanos
J'ai un petit soucis, j'aurais besoin de dropper une colonne qui contient une valeur par défaut, vu que cette contrainte n'est pas nommée par le développeur, je me retrouve avec un nom de contrainte autogénéré et comme j'ai plusieurs bases à mettre à jour j'ai un souci pour dropper cette contrainte de manière automatique.
Pour récupérer la liste des contraintes utilisés par une colonne
SELECT i.name, CONVERT(BIT, i.status & 2048) AS isPrimary FROM sysindexes i RIGHT JOIN sysindexkeys k ON i.id = k.id AND i.indid = k.indid INNER JOIN syscolumns c ON k.colid = c.colid AND k.id = c.id WHERE i.id = OBJECT_ID(N'Nomdelatable') AND i.indid > 0 AND i.indid < 255 AND i.status & 64 = 0 AND c.name = 'Nomdelacolonne'
Il ne reste plus qu'à boucler sur le recordset retourné et ALTER TABLE Nomdelatable DROP CONSTRAINT [Nomdelacontrainte]
si isPrimary est vrai alors DROP INDEX [Nomdelacontrainte]
voilà Elian Chrebor (el.c. sur host-web ;-))
-- // myLittleTools.net // Consulting, ingénierie informatique et développement // http://www.mylittletools.net/about
Je dois faire un script de mise à jour pour une trentaine de commerciaux et j'ai pas envie de le faire à la main :)
C'est sous MSSQL 2K et MSDE 2.0.
Comment pourrais-je faire ?
A++
Yanos
Bonjur Yanos
J'ai un petit soucis, j'aurais besoin de dropper une colonne qui
contient une valeur par défaut, vu que cette contrainte n'est pas
nommée par le développeur, je me retrouve avec un nom de contrainte
autogénéré et comme j'ai plusieurs bases à mettre à jour j'ai un
souci pour dropper cette contrainte de manière automatique.
Pour récupérer la liste des contraintes utilisés par une colonne
SELECT
i.name,
CONVERT(BIT, i.status & 2048) AS isPrimary
FROM sysindexes i
RIGHT JOIN sysindexkeys k ON i.id = k.id AND i.indid = k.indid
INNER JOIN syscolumns c ON k.colid = c.colid AND k.id = c.id
WHERE
i.id = OBJECT_ID(N'Nomdelatable')
AND i.indid > 0 AND i.indid < 255
AND i.status & 64 = 0
AND c.name = 'Nomdelacolonne'
Il ne reste plus qu'à boucler sur le recordset retourné
et
ALTER TABLE Nomdelatable DROP CONSTRAINT [Nomdelacontrainte]
si isPrimary est vrai alors
DROP INDEX [Nomdelacontrainte]
voilà
Elian Chrebor (el.c. sur host-web ;-))
--
// myLittleTools.net
// Consulting, ingénierie informatique et développement
// http://www.mylittletools.net/about
Je dois faire un script de mise à jour pour une trentaine de
commerciaux et j'ai pas envie de le faire à la main :)
J'ai un petit soucis, j'aurais besoin de dropper une colonne qui contient une valeur par défaut, vu que cette contrainte n'est pas nommée par le développeur, je me retrouve avec un nom de contrainte autogénéré et comme j'ai plusieurs bases à mettre à jour j'ai un souci pour dropper cette contrainte de manière automatique.
Pour récupérer la liste des contraintes utilisés par une colonne
SELECT i.name, CONVERT(BIT, i.status & 2048) AS isPrimary FROM sysindexes i RIGHT JOIN sysindexkeys k ON i.id = k.id AND i.indid = k.indid INNER JOIN syscolumns c ON k.colid = c.colid AND k.id = c.id WHERE i.id = OBJECT_ID(N'Nomdelatable') AND i.indid > 0 AND i.indid < 255 AND i.status & 64 = 0 AND c.name = 'Nomdelacolonne'
Il ne reste plus qu'à boucler sur le recordset retourné et ALTER TABLE Nomdelatable DROP CONSTRAINT [Nomdelacontrainte]
si isPrimary est vrai alors DROP INDEX [Nomdelacontrainte]
voilà Elian Chrebor (el.c. sur host-web ;-))
-- // myLittleTools.net // Consulting, ingénierie informatique et développement // http://www.mylittletools.net/about
Je dois faire un script de mise à jour pour une trentaine de commerciaux et j'ai pas envie de le faire à la main :)
C'est sous MSSQL 2K et MSDE 2.0.
Comment pourrais-je faire ?
A++
Yanos
Yanos El Guerilleros
Salut,
Merci, j'ai trouvé hier soir un code similaire pour retrouver cela.
voilà Elian Chrebor (el.c. sur host-web ;-))
J'avais repéré, même si je ne traine pas trop sur host web pour le moment j'ai encore un peu de mémoire ;)
A++
Yanos
Salut,
Merci, j'ai trouvé hier soir un code similaire pour retrouver cela.
voilà
Elian Chrebor (el.c. sur host-web ;-))
J'avais repéré, même si je ne traine pas trop sur host web pour le moment
j'ai encore un peu de mémoire ;)