Changer le type d'une colonne de DATETIME en INT

Le
tsalm
Bonjour,

Je me suis plant dans le type d'une colonne la cration de la
table et j'ai un fichier de requetes INSERT assez consequent y
appliquer.

Je voudrais modifier une colonne de type DATETIME en INT.

Un

ALTER TABLE MONARQUE ALTER COLUMN date_debut INT NULL

me renvoie
Serveur : Msg 260, Niveau 16, tat 1, Ligne 1
Conversion implicite non autorise du type de donnes datetime en
type int, table 'ROYAUTFG.dbo.MONARQUE', colonne 'date_debut'. Utilisez
la fonction CONVERT pour excuter cette requte.

D'avance merci,
TSalm.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
SQLpro [MVP]
Le #11801361
tsalm a écrit :
Bonjour,

Je me suis planté dans le type d'une colonne à la création de la
table et j'ai un fichier de requetes INSERT assez consequent à y
appliquer.

Je voudrais modifier une colonne de type DATETIME en INT.

Un

ALTER TABLE MONARQUE ALTER COLUMN date_debut INT NULL

me renvoie
Serveur : Msg 260, Niveau 16, État 1, Ligne 1
Conversion implicite non autorisée du type de données datetime en
type int, table 'ROYAUTFG.dbo.MONARQUE', colonne 'date_debut'. Utilisez
la fonction CONVERT pour exécuter cette requête.

D'avance merci,
TSalm.



Il n'est pas possible de le faire directement par un ordre du genre
ALTER TABLE... ALTER COLUMNN.
En effet ce serait bien trop dangereux pour l'intégrité de la base :
que se passerait t-il pour :
1) les contraintes référençant cette colonne
2) les intégrité référentielles utilisant cette référence
3) les vues utilisant cette colonne...

Mais ce type de modification est possible par un script transactionné.
Lisez l'article que j'ai écrit a ce sujet :
http://sqlpro.developpez.com/cours/s...partie2#L7.6.1

A +

--
Frédéric BROUARD, MVP SQL Server, expert bases de données et langage SQL
Le site sur le langage SQL et les SGBDR : http://sqlpro.developpez.com
Audit, conseil, expertise, formation, modélisation, tuning, optimisation
********************* http://www.datasapiens.com ***********************
tsalm
Le #11801181
SQLpro [MVP] a écrit :

> Je voudrais modifier une colonne de type DATETIME en INT.
>
> Un
>
> ALTER TABLE MONARQUE ALTER COLUMN date_debut INT NULL
>
> me renvoie
> Serveur : Msg 260, Niveau 16, État 1, Ligne 1
> Conversion implicite non autorisée du type de données datetime en
> type int, table 'ROYAUTFG.dbo.MONARQUE', colonne 'date_debut'. Utilisez
> la fonction CONVERT pour exécuter cette requête.



Il n'est pas possible de le faire directement par un ordre du genre
ALTER TABLE... ALTER COLUMNN.
En effet ce serait bien trop dangereux pour l'intégrité de la base :
que se passerait t-il pour :
1) les contraintes référençant cette colonne
2) les intégrité référentielles utilisant cette référence
3) les vues utilisant cette colonne...



Oui, c'est évident
mais dans mon cas, ça ne devrait pas poser de problèmes


Mais ce type de modification est possible par un script transactionné.
Lisez l'article que j'ai écrit a ce sujet :
http://sqlpro.developpez.com/cours/s...partie2#L7.6.1



oups, votre lien est mort.

En tout cas, merci
TSalm
Poster une réponse
Anonyme