我有很长的基因序列可能是天然的主键,但我正在寻找一种方法来找到更简洁的自然键的替代表示。不想使用代理键。不担心性能,因为不会有很多连接担心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)
答案 0 :(得分:0)
这是答案。 http://www.devx.com/tips/Tip/15397
基本上你必须确保一个函数不能返回null,所以在isnull或coalesce中包装hashbytes。