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.
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
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 ***********************
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 ***********************
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
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
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
> 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