SQL Server:如何使用递增的数据生成引用列?

时间:2014-04-16 08:57:20

标签: sql sql-server

我有2张桌子。

t1和t2。

t1有一个ID和一个参考。该引用的格式为TO-0000000,不能超过7个字符。

t2有1500条记录。如何以递增的计数插入数据?

T2不包含参考字段。 T2包含一个有1500条记录的ID。我想导入该ID,甚至只需将计数循环到1500并生成参考。

例如

ID    Reference
1     TO-0000001
..    ......
1500  TO-0001500

希望这是有道理的。

3 个答案:

答案 0 :(得分:1)

将表t1的ID列设为IDENTITY,并自动处理增量。 现在,您只需要从源表t2中引用引用值并插入目标表t1。

INSERT INTO t1(References)
SELECT References FROM t2

答案 1 :(得分:1)

我假设您要将ID列导入T1,并在插入该数据时生成引用字段。如果是这种情况,那么试试这个:

INSERT INTO T1 (ID,Reference)
SELECT ID,'TO-'+Left('0000000',(7-LEN(ID)))+CAST(ID AS CHAR)
FROM T2

尝试在SSMS中执行此操作以便于理解

DECLARE @num int=1
DECLARE @Results TABLE
(
ID INT,
Reference Char(10)
)
WHILE @num <= 1500
BEGIN
Insert INTO @Results
Select @num, 'TO-'+Left('0000000',(7-LEN(@num)))+CAST(@num AS CHAR)
SET @num = @num+1
END
SELECT * FROM @Results

答案 2 :(得分:0)

DECLARE @T TABLE (Flag INT IDENTITY(1,1),Name VARCHAR(20));
DECLARE @N INT,@name VARCHAR(20)
SET @N = 1
WHILE (@N < 1500)
BEGIN
INSERT INTO @T(Name)
VALUES( 'TO' + RIGHT('00000'+ CONVERT(VARCHAR,@N),12));
SET @N = @N + 1;

END
select * from @T