Sql 将自动生成的值插入到具有特定模式的列中

Sql 将自动生成的值插入到具有特定模式的列中,sql,sql-server,Sql,Sql Server,我有一个名为tblSample的表,其中有ID、PID等列。我想用特定的模式自动生成这两列 例如: ID-PID ------ ------ ABC001 PAB001 ABC002 PAB002 ABC003 PAB003 ABC004 PAB004 | | | | ABC999 PAB999 如您所见,ID中的模式“ABC”和PID中的模式“PAB”是相同的。如何将这些记录自动插入表中,且“ABC”或“PAB”后的三位数字之间的范围为001-999?我的建

我有一个名为
tblSample
的表,其中有
ID
PID
等列。我想用特定的模式自动生成这两列

例如:

ID-PID
------   ------
ABC001 PAB001
ABC002 PAB002
ABC003 PAB003
ABC004 PAB004
|        | 
|        |
ABC999 PAB999

如您所见,
ID
中的模式“ABC”和
PID
中的模式“PAB”是相同的。如何将这些记录自动插入表中,且“ABC”或“PAB”后的三位数字之间的范围为001-999?

我的建议是创建如下表结构,其中一个标识列为testID,另一个通过使用该列ID和PID计算:

CREATE TABLE #tmpOne(testID INT IDENTITY (1,1), 
    ID AS ('ABC'+ (CASE WHEN len(testID) <=3 THEN CAST(RIGHT(0.001*testID, 3) AS VARCHAR) ELSE CAST(testID AS VARCHAR) END)), 
    Ename VARCHAR(20))

INSERT INTO #tmpOne(Ename)
SELECT 'Test'

SELECT * FROM #tmpOne
CREATE TABLE#tmpOne(testID INT IDENTITY(1,1)),

ID AS('ABC'+(len(testID)时的情况)我的建议是创建如下表结构,其中一个标识列作为testID,另一个通过使用该列ID和PID进行计算:

CREATE TABLE #tmpOne(testID INT IDENTITY (1,1), 
    ID AS ('ABC'+ (CASE WHEN len(testID) <=3 THEN CAST(RIGHT(0.001*testID, 3) AS VARCHAR) ELSE CAST(testID AS VARCHAR) END)), 
    Ename VARCHAR(20))

INSERT INTO #tmpOne(Ename)
SELECT 'Test'

SELECT * FROM #tmpOne
CREATE TABLE#tmpOne(testID INT IDENTITY(1,1)),

ID AS('ABC'+(len(testID)工作时的情况)谢谢看@Suraz给出的答案非常简单感谢看@Suraz给出的答案非常简单