0

自然の主キーになる可能性のある長い遺伝子配列がありますが、自然キーのより簡潔な代替表現を見つける方法を探しています。代理キーを使用したくない。PK の効率がどこで問題になるかを心配する結合が多くないため、パフォーマンスについて心配する必要はありません。

これは可能ですか?

        create table foo(
           myvalue varchar(2000) not null,
           md5 as hashbytes('MD5',myvalue) PERSISTED   PRIMARY KEY  NOT NULL   -- bad syntax
         )

もしそうなら、正しい構文は何ですか? 上記は正しくありません。

また、子テーブルを作成して FK リレーションシップを設定することはできますか? これについては、ドキュメントの制限セクションが明確ではありません。

          create table fooChild(
          id int primary key not null,
          md5 varbinary(16)
           )

         alter table fooChild add constraint FK_FOOCHILD_FOO
         foreign key(md5) references FOO(md5)
4

1 に答える 1

1

これが答えです。http://www.devx.com/tips/Tip/15397

基本的に、関数がnullを返せないようにする必要があるため、ハッシュバイトをisnullまたは合体でラップします。

于 2013-10-08T01:43:11.350 に答える