Modifier la colonne, ajouter la contrainte par défaut
J'ai une table et une des colonnes est la "Date" de type datetime. Nous avons décidé d'ajouter une contrainte par défaut à la colonne
Alter table TableName
alter column dbo.TableName.Date default getutcdate()
mais cela me donne l'erreur:
Syntaxe incorrecte près de '.'
Personne ne voit rien, évidemment, le problème ici, ce qui me manque (autre que d'avoir un meilleur nom pour la colonne)
- N'utilisez pas les types ou des mots-clés comme noms de colonne!
- ouais, d'accord-"personne Ne voit rien, évidemment, le problème ici, ce qui me manque (autre que d'avoir un meilleur nom pour la colonne)"
Vous devez vous connecter pour publier un commentaire.
Essayer cette
exemple
assurez-vous également que le nom de la contrainte par défaut..il va être une douleur dans le cou, afin de tomber plus tard car il va avoir un de ces fou généré par le système des noms de...voir aussi Comment le Nom par Défaut Contraintes Et Comment Chute de Contrainte par Défaut Sans Nom Dans SQL Server
vous pouvez envelopper les mots réservés dans les crochets pour éviter ce genre d'erreurs:
- Je utiliser la procédure stockée ci-dessous pour mettre à jour les valeurs par défaut sur une colonne.
Il supprime automatiquement tous les avant les valeurs par défaut de la colonne, avant d'ajouter la nouvelle valeur par défaut.
Exemples d'utilisation:
Procédure stockée:
Les erreurs de cette procédure stockée élimine
Si vous tentez d'ajouter une valeur par défaut pour une colonne quand il en existe déjà un, vous obtiendrez l'erreur suivante (quelque chose que vous ne verrez jamais si à l'aide de cette procédure stockée):
En fait que vous avez à Faire, Comme l'Exemple ci-dessous, qui vous aidera à Résoudre ce Problème...
Vous êtes en précisant le nom de la table à deux reprises. L'ALTER partie TABLE des noms de la table.
Essayez:
Alter table Nomtable
alter column [Date] par défaut getutcdate()
alter table Nomtable
drop constraint DF_TableName_WhenEntered
alter table Nomtable
ajouter contrainte DF_TableName_WhenEntered
par défaut getutcdate() pour WhenEntered