web-dev-qa-db-fra.com

Getdate par défaut pour la date d'insertion

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?

17
user556674

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.

26
p.campbell

Essaye ça:

ALTER TABLE sample ADD CONSTRAINT DF_sample___INSERT_DATE DEFAULT(GETDATE()) FOR __INSERT_DATE
3
J.Ray

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 ->)

1
Andrew

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()
1
DOK

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

0
Jennifer S

J'ai pu le faire en utilisant SSManagement Studio

 Setting default in SSMS - Screen Shot

rendre le champ de date non nul, puis à partir des propriétés définir Defalut Value ou Binding à getdate ()

0
Arun Prasad E S

 enter image description here

(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
0
Md Shahriar