我需要为SQL Server中的几个字段的组合生成一个ID字段。让我给你举个例子。
我有一张像下面这样的桌子
品牌 | 所有者 | 来源 |
---|---|---|
Pip | 人员 | 线//tr>|
鞭笞 | 人员 | 线//tr>|
Pip | 人员 | 脱机 |
zip | 演示 | 在线 |
撕裂 | 僵尸 | 机//tr>|
Dip | Ghosts | 机//tr>
您的数据库结构不尊重关系原理的基本原理。
您需要将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);