我有一个包含主键的表,其中值是目前1-4位数的ID号。例如:
我现在想在每个值的开头添加相同的文本,同时仍然保留ID的其余部分。例如,这就是我希望我的主键现在显示的方式:
有人可以描述一下如何做到这一点吗?我发现的任何搜索似乎都与在值的开头添加文本有关,同时保持其余部分相同。
答案 0 :(得分:1)
CREATE NewTable
(
SNo INT,
ID VARCHAR(10)
)
INSERT INTO NewTable(SNo,ID)
SELECT SNo,'IN'+CONVERT(varchar(10),ID) FROM OldTable
--Finally drop your existing Old table
DROP TABLE OldTable
答案 1 :(得分:0)
CONCAT()
或+
解决了您的问题。听起来你想在表格中找到一个新的id。如果是这样,您可以更改表格:
alter table t add newid as ('IN' + convert(varchar(255), id));
这将允许您在引用该表的任何查询中查询新ID。
您可以通过执行以下操作来实际更新ID:
alter table t alter column id varchar(255);
update t
set id = 'IN' + convert(varchar(255), id);
请注意,这可能会破坏外键引用。
然而,我认为拥有一个"来源"可能会更好。列作为表中的单独的列,并在id
中对其进行编码。换句话说,也许您应该问另一个关于问题的问题,看看其他解决方案是否更适合。