2016-07-19 2 views
1

を挿入するタイムスタンプの列があります。レコードを挿入または更新するたびに、レコードから挿入または更新した同じキーをタイムスタンプとして選択します。私たちは、二重の検索を避けるたいT-SQLデータベースに

:更新用と選択のためには、我々はこのような何か試してみました:、私は、イタリア語で「タイムスタンプ列のようなものがエラーを持っている

declare @table table(id int, val timestamp not null) 
declare @table2 table(val timestamp) 

insert @table(id) 
output inserted.val into @table2 
values (1) 

をそれがコンパイルできないことができます明示的に設定しないでください '

ヒント?

答えて

1

TIMESTAMPは自動的に生成され、読み取り専用として公開されるデータ型です。これは、システム内のインクリメント数に基づいています。

SQL Server: Cannot insert an explicit value into a timestamp column

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

DECLARE @table TABLE(id INT, val TIMESTAMP NOT NULL) 
DECLARE @table2 TABLE(val DATETIME) 

INSERT @table (id) 
OUTPUT inserted.val INTO @table2(val) 
VALUES (1) 

SELECT 
    t.id, 
    t.val, 
    CONVERT(TIMESTAMP, t2.val) AS table2_timestamp 
FROM 
    @table AS t, 
    @table2 AS t2