J'ai une table appelée exemple et elle a une colonne appelée [__INSERT_DATE] qui est null. Maintenant, je veux modifier la colonne avec la valeur par défaut getdate()
. Quand j'ai essayé ce qui suit, ça m'a donné une erreur.
ALTER TABLE sample
ALTER COLUMN [__INSERT_DATE] [datetime] DEFAULT (getdate()) NULL)
Est-ce que quelqu'un peut me dire quel est le problème?
Essaye ça:
ALTER TABLE MyTable ADD CONSTRAINT
DF_MyTable_Inserted DEFAULT GETDATE() FOR INSERT_DATE
GO
Cela suppose que votre table s'appelle MyTable
, la colonne est INSERT_DATE
et le nom du contstraint doit être DF_MyTable_Inserted
.
Essaye ça:
ALTER TABLE sample ADD CONSTRAINT DF_sample___INSERT_DATE DEFAULT(GETDATE()) FOR __INSERT_DATE
ALTER TABLE sample
ALTER COLUMN [__INSERT_DATE] [datetime] DEFAULT (getdate()) NULL)
Vous avez trop de crochets de fermeture dans la déclaration ci-dessus. Il y en a 2 -> (mais 3 ->)
MSDN donne cet exemple:
ALTER TABLE MyCustomers ALTER COLUMN CompanyName SET DEFAULT 'A. Datum Corporation'
Cela vous donnerait
ALTER TABLE sample ALTER COLUMN __INSERT_DATE SET DEFAULT GETDATE()
Getdate () renvoie-t-il le type de données date et heure correct pour votre colonne déclarée? Il existe de nouveaux types de données de date et heure dans SQL Server 2008.
Voici un article qui explique certaines des différences.
http://www.sql-server-performance.com/articles/dev/datetime_2008_p1.aspx
(Your_Date_Column) Indiquez Null/Not Null et donnez la valeur par défaut GetDate () mais cela ne fonctionnera toujours pas . Vous devez créer un déclencheur comme celui-ci,
CREATE TRIGGER [dbo]. [Trigger_Date] ON [dbo]. [TableName] POUR INSÉRER COMME COMMENCER
Declare @Id int
set @Id = (select Id from inserted)
Update [dbo].[TableName]
Set Your_Date_Column = GetDate()
Where Id = @Id
END