2012-06-17 2 views
1

SQL Azure 데이터베이스에서 작업하고 있습니다.SQL Azure의 rowversion

내 데이터베이스의 테이블에 rowversion 열을 추가하고 싶지만 "rowversion"유형을 찾을 수 없습니다!

"타임 스탬프"유형입니까? 그렇다면 ! 나는 타임 스탬프가 사용되지 않음을 읽었다.

감사합니다.

답변

0

이들은 동일한 것입니다. Rowversion은 "나중"버전입니다 - timestamp는 timestamp에 대한 표준 SQL 스펙과 일치하지 않으므로 사용되지 않습니다.

데이터베이스에 rowversion이 없으면 timestamp를 사용하십시오. 그것은 rowversion 데이터 형식을 나타내는 이름에 대한 끔찍한 선택했기 때문에

http://msdn.microsoft.com/en-us/library/ms182776.aspx

2

이름timestamp이 사용되지 않습니다 - 그것은 (날짜 또는 시간 함께 할 수 없다 이후로 정상적으로는, ANSI에 지정된 내용을 기반으로하는 경우). timestamprowversion 유형은 100 % 호환 가능하며 상호 교환 가능합니다.

이름은 사용되지 않지만 더 이상 사용하지 않을 수도 있습니다. 심지어 SQL Server 2012에서 rowversionsys.types이 아니며 rowversion을 사용하여 테이블을 만들면 에 timestamp으로 저장되며 나중에 테이블 스크립트를 생성하면 후자로 스크립팅됩니다.

CREATE TABLE dbo.what_the(heck ROWVERSION); 

SELECT t.name 
    FROM sys.types AS t 
    INNER JOIN sys.columns AS c 
    ON t.system_type_id = c.system_type_id 
    OR t.user_type_id = c.user_type_id 
WHERE 
    c.[object_id] = OBJECT_ID('dbo.what_the'); 

결과 :

name 
--------- 
timestamp 

이 뺨에 약간 혀, 당신은 절대적으로 다시 한번 마이크로 소프트가 있기 때문에 그냥 약간의 재미를 파고있어, 향후 호환성을 위해 rowversion하지 timestamp를 사용해야합니다 "우리가 말하는 것처럼, 우리가하는 것처럼"비추천 정책. SQL Azure의 경우에는 timestamp을 선택해야합니다. 이렇게 정리하면 나에게 너무 혼란 스럽기 때문에 이전 이름을 계속 사용한다는 것이 근시안적 인 것처럼 보입니다. <shrug>

P. 이거 어디서 봤니? 웹 기반 SQL Azure 테이블 디자이너에서? 쿼리 디자이너를 사용하여 테이블 디자이너 UI의 드롭 다운 목록에 자신을 제한하는 대신 테이블을 만들려면 rowversion 또는 timestamp을 사용할 수 있습니다.

+1

또한 "페더레이션 멤버는 타임 스탬프 및 rowversion 데이터 형식을 지원하지 않습니다." - [연맹 지침 및 제한] (http://msdn.microsoft.com/en-us/library/windowsazure/hh597469) –

+1

@ FernandoCorreia 좋은 지적으로, 나는 연맹에 대해서도 생각조차하지 않았습니다. –