2012-05-15 4 views
1

Я использую MS SQL Server 2008 R2, и мне нужно иметь ячейку в каждой строке с датой и временем, когда строка была вставлена ​​в базу данных. Теперь, когда я хочу сценарий, а затем загружать базу данных в MS SQL Server 2005, я не могу использовать дату и время, поэтому я попытался использовать функцию getdate() в свойстве «Спецификация вычисляемого столбца». Кто-нибудь может мне помочь, пожалуйста.SQL Server 2008. Сложность установки даты и времени «timestamp»

Благодаря

+2

Почему не могу использовать DateTime? – JonH

+2

Getdate() должен быть в спецификации по умолчанию, а не в вычисляемом столбце. – RThomas

+1

Какова точка вычисленного столбца с 'getdate()'? Вы имели в виду нормальный столбец с 'default getdate()'? – a1ex07

ответ

5

Жан-Клод, вот полный пример.

Код

USE tempdb; 
SET NOCOUNT ON; 
GO 

CREATE TABLE dbo.TestTable (
    RecordId   int   IDENTITY, 
    RecordValue  varchar(32) NOT NULL, 
    RecordCreateDate datetime NOT NULL, 

    CONSTRAINT PK_TestTable 
    PRIMARY KEY CLUSTERED (
     RecordId 
    ) 
) 
GO 

ALTER TABLE dbo.TestTable 
ADD CONSTRAINT DF_TestTable_RecordCreateDate 
DEFAULT GETDATE() 
FOR RecordCreateDate; 
GO 

INSERT INTO dbo.TestTable (RecordValue) VALUES ('this'); 
WAITFOR DELAY '00:00:01'; 
INSERT INTO dbo.TestTable (RecordValue) VALUES ('that'); 
WAITFOR DELAY '00:00:01'; 
INSERT INTO dbo.TestTable (RecordValue) VALUES ('the other thing'); 

SELECT * FROM dbo.TestTable; 

Результаты

RecordId RecordValue  RecordCreateDate 
-------- --------------- ----------------------- 
1  this   2012-05-16 10:43:48.400 
2  that   2012-05-16 10:43:49.403 
3  the other thing 2012-05-16 10:43:50.403 

Вы также должны исследовать новые типы данных даты и времени и функции SYSDATETIME().

0

Jean Claude, похоже, вы ошибаетесь в отношении datetime, которое поддерживалось в каждой версии SQL Server, которую я когда-либо использовал, вплоть до 6.5. Это типов даты и времени, которые являются новыми в SQL 2008.

отличный ответ Роб должен работать нормально как в SQL 2005 и 2008

Смежные вопросы