我正在编写一个存储过程,该存储过程基于主表的主键将来自几个不同关系表的数据链接在一起。该信息被发送到平面数据库。该存储过程将产生几条几乎相同的行,其中只有一列可能会有所不同,这是由于某些表中的多个条目链接到主表中的单个条目。我需要唯一标识存储过程输出中的每一行,但是由于每个“键”都会有多个条目,因此我无法使用主表中的主键。
我考虑过使用主表中的主键,然后使用在重复行中可能有所不同的每一列的方法。例如 _
但是,这种方法导致密钥很长且混乱。我无法使用GUID,因为如果关系数据库中的任何数据发生更改,则存储过程将重新运行,并且必须更新旧条目而不是创建新条目。
答案 0 :(得分:0)
如果您的目的只是拥有一个尽可能短且与其他内容无关的唯一键,请考虑将ROW_NUMBER()添加到您的选择中。
SELECT ROW_NUMBER() OVER(ORDER BY (SELECT NULL)), othercolumns