1

これらは列です(簡略化):

myDate as Date
theMonths as int

finalDate次に、Microsoft SQL Server Management Studio 2008 R2 で次の式を使用して計算列を作成します。

(dateadd(month, theMonths, myDate))

とてもシンプルです。しかし、エラーがあります:

式の検証中にエラーが発生しました

このエラーは、Management Studio の統合アシスタントを使用して数式を挿入した場合にのみ発生します。T-SQL クエリを使用して列を作成する場合は発生しません。

myDateタイプをに変更するとDatetime、エラーは発生しませんが、テーブル構造を変更できません。

私はこれを試します:

(dateadd(month, theMonths, CONVERT(Datetime, myDate)))

エラーが続く。

以下を使用して、T-SQL で列を直接作成しました。

ADD [finalDate] AS (dateadd(month,[theMonths],[myDate])) PERSISTED

正常に動作し、列が作成され、挿入更新時にデータが計算されます。問題は Management Studio にあります。

4

1 に答える 1

1

これを試してみてください -

CREATE TABLE dbo.[test]
(
    myDate DATE NOT NULL DEFAULT (GETDATE()),
    theMonths INT NOT NULL DEFAULT ((0)),
    finalDate AS (DATEADD(MONTH, theMonths, myDate)) PERSISTED
)

INSERT INTO dbo.[test] (myDate, theMonths)
VALUES('20130101', 5) 

SELECT * FROM dbo.[test]
于 2013-05-13T05:24:59.060 に答える