代码之家  ›  专栏  ›  技术社区  ›  DeveloperChris

SQL Server从键包含多列的表中选择主键

  •  0
  • DeveloperChris  · 技术社区  · 15 年前

    我正在处理一个遗留数据库。我无法更改模式:(在两个表中,主键使用多个列。

    目前,我连接各种PK列,并将它们存储为唯一id,以便在将数据放回表中时使用。

    SELECT PRIMARYKEY() as pk, ...  FROM table WHERE ... 
    

    直流

    2 回复  |  直到 15 年前
        1
  •  1
  •   marc_s HarisH Sharma    15 年前

    在SQL Server中,我真的没有意识到PRIMARYKEY()的等价物。您可以查阅系统目录视图,找出构成主键的列,但不能仅通过函数调用选择主键值。

    我同意StarShip3000-你把你的PK值串联起来做什么?虽然我不认为由几列组成的复合主键一定是一个好主意,但如果它是一个遗留系统,并且您无法更改它,我不会在读取时连接PK值,然后在您写回数据时再次将它们分开。只需保持结构不变-一般不建议使用复合键,但它们确实受支持,没有问题。

        2
  •  1
  •   Kuberchaun    15 年前

    “目前,我连接各种PK列,并将它们存储为唯一id,以便在将数据放回表中时使用。” 您不能将pk存储为目标表中的两列,并使用它们连接回源表中的两列吗?

    连接在这里给您带来了什么好处?