我想在插入函數上添加增量值。我已經嘗試了下面的代碼,但沒有工作。我想每次增加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''。但是這對於併發查詢可能有問題。 –