我想在插入函数上添加增量值。我尝试了以下代码,但无法正常工作。我想每次将COLUMN1
增加1。COLUMN1
不是关键列。
@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT @var++,COLUMN6,COLUMN7,COLUMN8
FROM TABLE_B;
有什么想法吗?
答案 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;
将变量初始化为所需的起始编号。如果我的手机短信,我会道歉。
希望这有帮助。