1

私は SQL Azure データベースに取り組んでいます。

データベースのテーブルに rowversion 列を追加したいのですが、「rowversion」というタイプが見つかりません。

「タイムスタンプ」タイプですか?もしそうなら !タイムスタンプが非推奨であることを読みました。

ありがとう、

4

2 に答える 2

3

データ型を表す名前の恐ろしい選択だったため、名前 のみが非推奨になりました。これは、日付や時刻とは関係がないためです(ANSIで指定されているものに基づく場合)。およびタイプは100%互換性があり、交換可能です。timestamprowversiontimestamprowversion

また、この名前は廃止されましたが、引き続き使用することもできます。SQL Server 2012でも、rowversionは含まれていません。それsys.typesを使用してテーブルを作成すると、としてrowversion保存され、後でテーブルのスクリプトを生成する場合は後者としてスクリプト化されます。sys.columnstimestamp

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ます。Microsoftには「私たちが言うようにではなく、私たちが言うように」の非推奨ポリシーがあるので、ちょっと楽しんでいます。SQL Azureの場合、timestampこれを整理するまで、今のところ選択する必要があるかもしれません。古い名前を使い続けるのは、非常に混乱を招き続けるので、私には近視眼的なようです。<shrug>

PSこれはどこで見ていますか?WebベースのSQLAzureテーブルデザイナーでは?テーブルデザイナUIのドロップダウンに表示されるリストに限定する代わりに、クエリエディタを使用してテーブルを作成することもできrowversionます。timestamp

于 2012-06-17T23:45:03.650 に答える
1

それらは同じものです。Rowversion は「新しい」バージョンです。timestamp の標準 SQL 仕様と一致しないため、timestamp は非推奨です。

データベースに行バージョンがない場合は、タイムスタンプを使用してください。

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

于 2012-06-17T17:35:21.757 に答える