8

私は CRM 用の SDK を使用していて、エンティティの 1 つのインスタンスの束で PK を出力しました。データベースのフィルタリングされたビューでそれを繰り返したところ、同じ答えが得られました。

    1a6c691d-391a-de11-8b0e-0050568407cb
    bd7b0ff0-391a-de11-8b0e-0050568407cb
    ed272bfe-391a-de11-8b0e-0050568407cb
    ... 等々 ...

これらは有効な GUID ではないようです。1 つには、それらは間違っているように見えます。それらはほぼ同一であり、MAC アドレスとクロック時間に基づいていた古いバージョン 1 および 2 の GUID 以来、GUID にはなかったプロパティです。さらに、GUID の特定のニブルが GUID のバージョンを示しているという事実があります。このニブルはここでは正しくありません。(3 番目のセクションの最初のニブル、つまり: 1a6c691d-391a-** d **e11-8b0e-0050568407cb) - 有効な値は 1 ~ 5 です) (MS の GUID ジェネレーターを使用して GUID を生成します - そのスロットは常に 4 になります。(少なくとも私が持っているバージョンでは。))

これらは GUID ですか、それとも単なる ID ですか? どうすればわかりますか?

4

1 に答える 1

10

それらがGUIDであり、それらが連続していることは正しいです。これらのキーは CRM によって生成されません。それらは SQL Server によって生成されます。

SQL Server には、uniqueidentifier と呼ばれる GUID タイプがあります。NEWID() または NEWSEQUENTIALID() として構成できます。NEWID() は毎回新しい GUID を生成します。NEWSEQUENTIALID() は、最初に GUID を生成し、その後のデータベース挿入で順次インクリメントします。

Dynamics CRM が NEWSEQUENTIALID() 用に構成されていることがわかりました。

詳細については、こちらをご覧ください: http://www.mssqltips.com/tip.asp?tip=1600

于 2009-06-04T03:02:09.273 に答える