[SQL] SQL Server는 타임 스탬프 열을 업데이트
SQLSQL Server는 타임 스탬프 열을 업데이트
내 데이터베이스에서 나는 타임 스탬프 열이 있습니다. 나는 테이블에서 행을 업데이트해야하고, 타임 스탬프 열을 업데이트해야합니다. 내가 업데이트 명령을 실행할 때 내가 얻을 :
Cannot update a timestamp column.
어떻게 타임 스탬프 열을 업데이트 할 수 있습니까?
해결법
-
==============================
1.당신은하지 않습니다
당신은하지 않습니다
타임 스탬프 열이 자동으로 업데이트됩니다. 아마 당신은 타임 스탬프 시간과 관련된 값을 포함하고 있다는 인상을 받고있다? 그것은하지 않습니다,하지만 단순히 레코드의 값이 될 때마다 업데이트되는 숫자입니다. 행 버전 번호처럼 생각하십시오.
MSDN에서 :
-
==============================
2.행의 다른 열이 업데이트 될 때마다 타임 스탬프 (지금 이름 rowversion) 열이 자동으로 SQL 서버에서 업데이트됩니다 - 당신은 타임 스탬프 열을 업데이트하지 않습니다.
행의 다른 열이 업데이트 될 때마다 타임 스탬프 (지금 이름 rowversion) 열이 자동으로 SQL 서버에서 업데이트됩니다 - 당신은 타임 스탬프 열을 업데이트하지 않습니다.
당신이 이미 알고 있지만, 어떤 이유로 업데이트 할 수있는 열을 강제 할 경우, 당신이 영향을 원하는 행에 대한 업데이트를 수행. 그것은 실제 데이터 변경을 초래하더라도, 타임 스탬프 열이 계속 업데이트됩니다 :
create table #T1 ( ID int not null, ts timestamp not null ) insert into #T1 (ID) select 1 union all select 2 select * from #T1 update #T1 set ID = ID where ID=1 select * from #T1 ID ts 1 0x0000000000039AAF 2 0x0000000000039AB0 ID ts 1 0x0000000000039AB1 2 0x0000000000039AB0
-
==============================
3.나의 질문에 대한 답변은 아니지만 나는 TIMESTAMP가 오해 할 수있는 방법을 언급하고 싶었다.
나의 질문에 대한 답변은 아니지만 나는 TIMESTAMP가 오해 할 수있는 방법을 언급하고 싶었다.
당신은 당신의 문제의 TIMESTAMP 컬럼의 사용을 명시하지 않는하지만 사실 당신은 당신이 때 데이터 변경 사항을 기록하려고 (나에게) 의미 업데이트하기 위해 노력하고 있습니다.
이 문서에서보세요 당신이 실제로 DATETIME을 사용하여 변경 사항을 기록 할 때 타임 스탬프를 사용하여 관련 (그물에 많은 사람들도 있습니다).
BOL는 말합니다 :
Damien_The_Unbeliever가 말했듯이 유형은 이름과 설명을 말한다되었습니다
물론, 당신이 방식으로 데이터 형식을 사용하는 경우하면 모든 위의 무시 목적 :
-
==============================
4.업데이트가 허용 된 경우는, 값이 고유하게 보증 될되지되지 않는, - 그것은 서버 생성하고 전체 데이터베이스에 대해 고유해야하는 보증 될 때문에 타임 스탬프 열을 업데이트 할 수 없습니다.
업데이트가 허용 된 경우는, 값이 고유하게 보증 될되지되지 않는, - 그것은 서버 생성하고 전체 데이터베이스에 대해 고유해야하는 보증 될 때문에 타임 스탬프 열을 업데이트 할 수 없습니다.
기록의 그룹 당 마지막 업데이트 기록을 확보하려고 할 때 몇 가지 문제가 발생 - 나는 복제 된 인스턴스가 출판사와 동일한 타임 스탬프 값을 가지고 있지 않았기 때문에 복제 된 인스턴스에서 타임 스탬프 열을 업데이트하려고 같은 문제에 직면했다. 물론, 복제, 그것은 가입자에게 이상 복제 동일한 타임 스탬프 값을 사용하려면 게시자에 configurationg 간단한이었다.
그렇지 않으면, 타임 스탬프 값을 업데이트 할 다른 방법이 없습니다.
-
==============================
5.저도 같은 문제를 겪고, 내 솔루션 :
저도 같은 문제를 겪고, 내 솔루션 :
UPDATE [table] SET [ANY_COLUMN] = [ANY_COLUMN] WHERE ID = [ID]
타임 스탬프가 다시 계산됩니다 테이블 값 변경, 나는 때문에 타임 스탬프가 업데이트 될 때 동일한 값으로 모든 열을 업데이트 언제 같은
from https://stackoverflow.com/questions/4592658/sql-server-updating-a-time-stamp-column by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] PostgreSQL의 - 테이블 이름 같은 동적 값 [중복] (0) | 2020.06.12 |
---|---|
[SQL] 오라클 SQL은 두 숫자 사이의 모든 정수를 가져옵니다 (0) | 2020.06.12 |
[SQL] SELECT 문에서 두 열을 결합 SQL은 (0) | 2020.06.12 |
[SQL] 저장 프로 시저의 반환 결과 세트 대신 int로 (0) | 2020.06.12 |
[SQL] 내가 사용이 가입 또는 EXISTS 사용하여 더 나은 성능을 얻을 수 있습니까? (0) | 2020.06.12 |