我想在插入函数上添加增量值。我已经尝试了下面的代码,但没有工作。我想每次增加COLUMN1
1。 COLUMN1
不是关键列。SQL插入函数(插入增量值)
@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT @var++,COLUMN6,COLUMN7,COLUMN8
FROM TABLE_B;
任何想法?
我想在插入函数上添加增量值。我已经尝试了下面的代码,但没有工作。我想每次增加COLUMN1
1。 COLUMN1
不是关键列。SQL插入函数(插入增量值)
@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT @var++,COLUMN6,COLUMN7,COLUMN8
FROM TABLE_B;
任何想法?
您可以使用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;
您可以尝试将该列设置为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
在SQL Server 2012中无法识别sp_rename函数 – user2242558
@ user2242558: - 您已将问题标记为SQL Server 2008.并且sp_rename也适用于SQL Server 2012,https://msdn.microsoft.com/en-in/ library/ms188351(v = sql.110).aspx –
添加2008错误!我很抱歉! – user2242558
您还可以使用row_number()
功能为了这。将row_number
添加到变量。
@var=0;
INSERT INTO TABLE_A (COLUMN1,COLUMN2,COLUMN3,COLUMN4)
SELECT @var + row_number(),COLUMN6,COLUMN7,COLUMN8
FROM TABLE_B;
将您的变量初始化为您想要的起始数字。道歉,如果它是短我从我的手机发布。
希望这会有所帮助。
请。添加一个关于你的正确答案的例子 –
但我想要一个独特的价值!第二次插入时会发生什么? – user2242558
然后这不起作用。改为使用'IDENTITY'列。 –
或用'+(SELECT MAX(COLUMN1)FROM TABLE_B')替换'-1''。但是这对于并发查询可能有问题。 –