Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Changer le type d'une colonne de DATETIME en INT

2 réponses
Avatar
tsalm
Bonjour,

Je me suis plant=E9 dans le type d'une colonne =E0 la cr=E9ation de la
table et j'ai un fichier de requetes INSERT assez consequent =E0 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, =C9tat 1, Ligne 1
Conversion implicite non autoris=E9e du type de donn=E9es datetime en
type int, table 'ROYAUTFG.dbo.MONARQUE', colonne 'date_debut'. Utilisez
la fonction CONVERT pour ex=E9cuter cette requ=EAte.

D'avance merci,=20
TSalm.

2 réponses

Avatar
SQLpro [MVP]
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 ***********************
Avatar
tsalm
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