J'ai une table et l'une des colonnes est "Date" de type datetime. Nous avons décidé d'ajouter une contrainte par défaut à cette colonne
Alter table TableName
alter column dbo.TableName.Date default getutcdate()
mais cela me donne une erreur:
Syntaxe incorrecte près de "."
Quelqu'un voit-il quelque chose de manifestement faux ici, ce qui me manque (à part avoir un meilleur nom pour la colonne)
Réponses:
Essaye ça
exemple
assurez-vous également de nommer la contrainte par défaut..il sera pénible de la laisser tomber plus tard car elle aura l'un de ces noms générés par le système fou ... voir aussi Comment nommer les contraintes par défaut et comment supprimer la contrainte par défaut sans Un nom dans SQL Server
la source
vous pouvez mettre les mots réservés entre crochets pour éviter ce genre d'erreurs:
la source
J'utilise la procédure stockée ci-dessous pour mettre à jour les valeurs par défaut sur une colonne.
Il supprime automatiquement toutes les valeurs par défaut antérieures sur la colonne, avant d'ajouter la nouvelle valeur par défaut.
Exemples d'utilisation:
Procédure stockée:
Erreurs que cette procédure stockée élimine
Si vous essayez d'ajouter une valeur par défaut à une colonne alors qu'elle existe déjà, vous obtiendrez l'erreur suivante (quelque chose que vous ne verrez jamais si vous utilisez cette procédure stockée):
la source
En fait, vous devez faire comme ci-dessous l'exemple, ce qui aidera à résoudre le problème ...
la source
Vous spécifiez le nom de la table deux fois. La partie ALTER TABLE nomme la table. Essayez: Modifier la table TableName modifier la colonne [Date] default getutcdate ()
la source
alter table TableName drop contrainte DF_TableName_WhenEntered
alter table TableName ajouter la contrainte DF_TableName_WhenEntered default getutcdate () pour WhenEntered
la source