为SQL Server中的列组合生成一个数字



我需要为SQL Server中的几个字段的组合生成一个ID字段。让我给你举个例子。

我有一张像下面这样的桌子

线//tr>线//tr>机//tr>机//tr>
品牌 所有者 来源
Pip 人员
鞭笞 人员
Pip 人员 脱机
zip 演示 在线
撕裂 僵尸
Dip Ghosts

您的数据库结构不尊重关系原理的基本原理。

您需要将BrandName作为一个单独的表,该表具有可以自动生成的ID。

这样做的方法是:

SELECT DISTINCT IDENTITY(INT, 1, 1) AS BRAND_ID, BrandName
INTO BrandTable
FROM   MyTable:
ALTER TABLE BrandTable ADD PRIMARY KEY (BRAND_ID);
ALTER TABLE  MyTable ADD BRAND_ID INT;
UPDATE MT
SET    BRAND_ID = MT.BRAND_ID
FROM   MyTable AS MT
JOIN BrandTable AS T 
ON MT.BrandName = T.BrandName;
ALTER TABLE  MyTable ADD FOREIGN KEY (BRAND_ID) REFERENCES BrandTable (BRAND_ID);

最新更新