如何用T-SQL为字段分配永久唯一ID?附实操场景
如何为数据库字段永久分配唯一ID
当然可以实现!你现在只是用NEWID()临时生成了唯一ID用于查询展示,要把它永久保存到Staff表里,咱们可以按照以下步骤操作(基于你使用的SQL Server语法):
步骤1:添加唯一ID列
首先给表新增一个UNIQUEIDENTIFIER类型的列,先设置为允许为空,方便后续给已有数据填充值:
ALTER TABLE PrestigeCars.Reference.Staff ADD myuniqueID UNIQUEIDENTIFIER NULL;
步骤2:为现有数据填充唯一ID
给表中已有的所有行生成并写入唯一ID:
UPDATE PrestigeCars.Reference.Staff SET myuniqueID = NEWID() WHERE myuniqueID IS NULL;
步骤3:设置自动生成规则(可选但推荐)
如果希望之后新插入的员工数据自动生成唯一ID,我们可以把列设置为非空,并添加默认值约束:
-- 先将列设置为非空 ALTER TABLE PrestigeCars.Reference.Staff ALTER COLUMN myuniqueID UNIQUEIDENTIFIER NOT NULL; -- 添加默认值,新插入行时自动调用NEWID()生成ID ALTER TABLE PrestigeCars.Reference.Staff ADD CONSTRAINT DF_Staff_myuniqueID DEFAULT NEWID() FOR myuniqueID;
步骤4:设置为主键(可选)
如果这个唯一ID需要作为表的主键来确保唯一性和提升查询性能,可以添加主键约束:
ALTER TABLE PrestigeCars.Reference.Staff ADD CONSTRAINT PK_Staff_myuniqueID PRIMARY KEY CLUSTERED (myuniqueID);
完成这些操作后,你的Staff表就永久拥有了唯一ID列,现有数据已经填充了唯一值,后续新增数据也会自动生成唯一ID,完全满足你的需求。
内容的提问来源于stack exchange,提问作者Carltonp
相关产品推荐
相关产品推荐

