gpt4 book ai didi

sql - 如何在现有表中创建代理键列?

转载 作者:行者123 更新时间:2023-12-04 21:36:45 25 4
gpt4 key购买 nike

我想使用 SSMS 在现有表中创建一个名为 PurchaseOrderID 的新列。它结合了 LineNumberPONUMBER 来创建一个代理键,然后我将进入表设计模式并在那里为其分配一个 PK。

创建新列:

ALTER TABLE FactPurchaseOrders
ADD PurchaseOrderID VARCHAR(64);

填充值:

UPDATE FactPurchaseOrders
SET PurchaseOrderID = (CONVERT(VARCHAR(64), LineNumber) + CONVERT(VARCHAR(64), PONUMBER))
WHERE 1=1;

目前我无法为此列分配 PK,我相信因为它可以为空。我也试过先在设计模式下创建它,但出现了同样的问题。

Error when trying to save PK

最佳答案

确实如此。运行更新后,只需将您将在 PK 中使用的列更改为 NOT NULL。由于列现在将具有值,因此可以将其设置为 NOT NULL,然后它将允许分配 PK。还要确保桌面上还没有另一个 PK。只能有 1 个!

  1. 更新记录
  2. 将列更改为非空
  3. 在字段上创建 PK

关于sql - 如何在现有表中创建代理键列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39860018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com