基本的に、identityと同じようにuniqueidentifierを使用します。値を挿入したくありません。自動的に値を挿入する必要があります。行ごとに値が異なります。タイプuniqueidentifierの列に自動インクリメントを設定できません( 'autoincrement'プロパティはfalseに設定されており、編集できません)。
またはさらに良い:newsequentialid()
をUNIQUEIDENITIFER列のデフォルトとして使用します。これにより、やや連続した一連のGUIDが得られます。
_CREATE TABLE dbo.YourTable
(SerialID UNIQUEIDENTIFIER
CONSTRAINT DF_SerialID DEFAULT newsequentialid(),
.... (other columns)......
)
_
問題は次のとおりです。newsequentialidはonly列のデフォルトとして使用できます-関数などとして呼び出すことはできません。しかし、それはあなたの要件に合うようです。
UPDATE:SQL Server Management Studioには確認済みのバグがあり、newsequentialid()
をインタラクティブなテーブルデザイナー。
参照: http://social.msdn.Microsoft.com/Forums/en-US/sqltools/thread/cad8a4d7-714f-44a2-adb0-569655ac66e6
回避策:デフォルトを指定せずにテーブルを作成し、通常のクエリウィンドウでこのT-SQLステートメントを入力して実行します。
_ALTER TABLE dbo.YourTable
ADD CONSTRAINT DF_SerialID DEFAULT newsequentialid() FOR SerialID
_
これでうまくいくはずです!
SQLServerではC#ではなく….
列をPRIMARY KEYおよびROWGUIDとして設定します
RowGuid http://img341.imageshack.us/img341/8867/sqlserverrowguid.png
おもう
CREATE TABLE dbo.YourTable
(
SerialID UNIQUEIDENTIFIER PRIMARY KEY DEFAULT newsequentialid()
)
簡単です
NewID()をデフォルト値として使用します。少なくとも、これはSQL Serverに対して行うことです。