usar la fecha actual como valor predeterminado para una columna

79

¿Hay alguna forma de establecer el valor predeterminado de una columna DateTime.Nowen Sql Server?

Ejemplo:

table Event
Id int (auto-increment) not null
Description nvarchar(50) not null
Date datetime not null

La línea:

Insert into Event(Description) values('teste');

debe insertar una fila y el valor de la fecha debe ser la fecha actual.

dcarneiro
fuente
1
Este enlace también puede ser útil - blog.sqlauthority.com/2013/05/10/…
Steam

Respuestas:

108

Agregue una restricción predeterminada con la función GETDATE () como valor.

ALTER TABLE myTable 
  ADD CONSTRAINT CONSTRAINT_NAME
    DEFAULT GETDATE() FOR myColumn
Jason
fuente
9
En PostgreSQL sería: "alterar tabla myTable agregar columna mydatecol fecha predeterminada ahora ();" .. Solo agrego este comentario ya que el Sql-Server no se menciona en el título de la pregunta. Podría ayudar a un usuario de PostgreSQL ...
alfonx
1
Este sería el formulario si la columna ya existe en la tabla y no tiene ninguna restricción para establecer un valor predeterminado si el valor se omite en las instrucciones INSERT (o en las inserciones de CURSOR).
TT.
De la forma en que está escrito, parece que le falta la CONSTRAINTpalabra clave. Debería ser ... ADD CONSTRAINT MY_CONSTRAINT_NAME ...
Fausto
1
¿ GETDATE()Nos da la hora UTC?
Zapnologica
20
CREATE TABLE Orders(
    O_Id int NOT NULL,
    OrderNo int NOT NULL,
    P_Id int,
    OrderDate date DEFAULT GETDATE() // you can set default constraints while creating the table
)
Mayuresh
fuente
3
Este formulario establece una restricción sin nombre. Es mejor nombrar la restricción:[...]OrderDate DATE CONSTRAINT DF_Orders_date DEFAULT GETDATE()[...]
TT.
5

Puedes usar:

Insert into Event(Description,Date) values('teste', GETDATE());

Además, puede cambiar su tabla para que 'Fecha' tenga un valor predeterminado, "GETDATE ()"

Llamas
fuente
3

Seleccione el nombre de la columna de la tabla donde desea obtener el valor predeterminado de la fecha actual

 ALTER TABLE 
 [dbo].[Table_Name]
 ADD  CONSTRAINT [Constraint_Name] 
 DEFAULT (getdate()) FOR [Column_Name]

Modificar consulta de tabla

Alter TABLE [dbo].[Table_Name](
    [PDate] [datetime] Default GetDate())
Jalid
fuente
3

También me he encontrado con esta necesidad para mi proyecto de base de datos. Decidí compartir mis hallazgos aquí.

1) No hay forma de un campo NOT NULL sin un valor predeterminado cuando los datos ya existen ( ¿Puedo agregar una columna no nula sin el valor DEFAULT? )

2) Este tema se ha abordado durante mucho tiempo. Aquí hay una pregunta de 2008 ( agregue una columna con un valor predeterminado a una tabla existente en SQL Server )

3) La restricción DEFAULT se utiliza para proporcionar un valor predeterminado para una columna. El valor predeterminado se agregará a todos los registros nuevos SI no se especifica ningún otro valor. ( https://www.w3schools.com/sql/sql_default.asp )

4) El Proyecto de base de datos de Visual Studio que utilizo para el desarrollo es realmente bueno para generar scripts de cambio para usted. Este es el script de cambio creado para mi promoción de base de datos:

GO
PRINT N'Altering [dbo].[PROD_WHSE_ACTUAL]...';

GO
ALTER TABLE [dbo].[PROD_WHSE_ACTUAL]
    ADD [DATE] DATE DEFAULT getdate() NOT NULL;

-

Estos son los pasos que tomé para actualizar mi base de datos usando Visual Studio para el desarrollo.

1) Agregar valor predeterminado (Visual Studio SSDT: DB Project: diseñador de tablas) ingrese la descripción de la imagen aquí

2) Utilice la herramienta de comparación de esquemas para generar el script de cambio.

code already provided above

3) Vea los datos ANTES de aplicar el cambio. ingrese la descripción de la imagen aquí

4) Vea los datos DESPUÉS de aplicar el cambio. ingrese la descripción de la imagen aquí

SherlockHojas De Cálculo
fuente
1

Para utilizar la fecha actual como predeterminada para una columna de fecha, deberá:

1- diseñador de mesas abiertas

2- selecciona la columna

3- ir a propiedades de la columna

4- establecer el valor del valor predeterminado o la propiedad vinculante a ( getdate () )

ingrese la descripción de la imagen aquí

Maher Ben Issa
fuente
0

La sintaxis de creación de tablas puede ser como:

Create table api_key(api_key_id INT NOT NULL IDENTITY(1,1) 
PRIMARY KEY, date_added date DEFAULT 
GetDate());

La sintaxis de la consulta de inserción puede ser como:

Insert into api_key values(GETDATE());
tRuEsatm
fuente
0

Haga clic derecho en la tabla y haga clic en Diseño, luego haga clic en la columna que desea establecer el valor predeterminado.

Luego, en la parte inferior de la página en las propiedades de la columna, establezca el valor predeterminado o enlace a: 'getdate ()'

Mohamad Reza Shahrestani
fuente