SQL插入函数(插入增量值)

时间:2016-04-15 07:25:36

标签: sql sql-server sql-server-2012

我想在插入函数上添加增量值。我尝试了以下代码,但无法正常工作。我想每次将COLUMN1增加1。COLUMN1不是关键列。

@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4) 
       SELECT @var++,COLUMN6,COLUMN7,COLUMN8 
       FROM TABLE_B;

有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以使用ROW_NUMBER生成COLUMN1的顺序值:

INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4) 
SELECT
    ROW_NUMBER() OVER(ORDER BY(SELECT NULL)) - 1,
    COLUMN6,
    COLUMN7,
    COLUMN8 
FROM TABLE_B;

答案 1 :(得分:1)

您可以尝试将列设为IDENTITY列。如果它是现有列,那么您可以像这样添加它:

ALTER TABLE (TABLE_A) ADD NewColumn INT IDENTITY(1,1)

ALTER TABLE (TABLE_A) DROP COLUMN COLUMN1

sp_rename 'TABLE_A.NewColumn', 'COLUMN1', 'COLUMN'

然后简单地做

INSERT INTO TABLE_A (COLUMN2,COLUMN3,COLUMN4) 
SELECT
    COLUMN6,
    COLUMN7,
    COLUMN8 
FROM TABLE_B;

所以现在你不必在插入时提供COLUMN1。每当在表中插入新行时,它将自动填充,并且将增量为1。

答案 2 :(得分:0)

您也可以使用row_number()功能。将row_number添加到变量。

@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4) 
       SELECT @var + row_number (),COLUMN6,COLUMN7,COLUMN8 
       FROM TABLE_B;

将变量初始化为所需的起始编号。如果我的手机短信,我会道歉。

希望这有帮助。