私は SQL Azure データベースに取り組んでいます。
データベースのテーブルに rowversion 列を追加したいのですが、「rowversion」というタイプが見つかりません。
「タイムスタンプ」タイプですか?もしそうなら !タイムスタンプが非推奨であることを読みました。
ありがとう、
私は SQL Azure データベースに取り組んでいます。
データベースのテーブルに rowversion 列を追加したいのですが、「rowversion」というタイプが見つかりません。
「タイムスタンプ」タイプですか?もしそうなら !タイムスタンプが非推奨であることを読みました。
ありがとう、
データ型を表す名前の恐ろしい選択だったため、名前 のみが非推奨になりました。これは、日付や時刻とは関係がないためです(ANSIで指定されているものに基づく場合)。およびタイプは100%互換性があり、交換可能です。timestamp
rowversion
timestamp
rowversion
また、この名前は廃止されましたが、引き続き使用することもできます。SQL Server 2012でも、rowversion
は含まれていません。それsys.types
を使用してテーブルを作成すると、としてrowversion
保存され、後でテーブルのスクリプトを生成する場合は後者としてスクリプト化されます。sys.columns
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
ます。Microsoftには「私たちが言うようにではなく、私たちが言うように」の非推奨ポリシーがあるので、ちょっと楽しんでいます。SQL Azureの場合、timestamp
これを整理するまで、今のところ選択する必要があるかもしれません。古い名前を使い続けるのは、非常に混乱を招き続けるので、私には近視眼的なようです。<shrug>
PSこれはどこで見ていますか?WebベースのSQLAzureテーブルデザイナーでは?テーブルデザイナUIのドロップダウンに表示されるリストに限定する代わりに、クエリエディタを使用してテーブルを作成することもできrowversion
ます。timestamp
それらは同じものです。Rowversion は「新しい」バージョンです。timestamp の標準 SQL 仕様と一致しないため、timestamp は非推奨です。
データベースに行バージョンがない場合は、タイムスタンプを使用してください。