0

我有可能是自然主键的长基因序列,但我正在寻找一种方法来找到自然键的更简洁的替代表示。不想使用代理键。不用担心性能,因为不会有很多join去担心哪里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,因此将 hashbytes 包装在 isnull 或合并中。

于 2013-10-08T01:43:11.350 回答