MS SQL Server 2008 R2 を使用しています。各行に、行がデータベースに挿入された日付と時刻を含むセルが必要です。MS SQL Server 2005 でスクリプトを作成してデータベースをロードしたいので、datetime または date を使用できないため、Computed Column Specification プロパティで getdate() 関数を使用しようとしました。誰でも私を助けてください。
ありがとう
MS SQL Server 2008 R2 を使用しています。各行に、行がデータベースに挿入された日付と時刻を含むセルが必要です。MS SQL Server 2005 でスクリプトを作成してデータベースをロードしたいので、datetime または date を使用できないため、Computed Column Specification プロパティで getdate() 関数を使用しようとしました。誰でも私を助けてください。
ありがとう
Jean Claude、ここに完全な例があります。
コード
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() 関数についても調査する必要があります。
Jean Claude さん、あなたは datetime について誤解しているようです。これは、私がこれまでに使用した SQL Server のすべてのバージョンでサポートされており、6.5 までさかのぼります。SQL 2008 で新しく追加されたのは、日付型と時刻型です。
Rob の優れた回答は、SQL 2005 と 2008 の両方でうまく機能するはずです。