如何插入SQL行到一個新的表,其中符合標準,但重置id的值。換句話說,複製行,但重置id值。空值的SQL插入的ID
這是我當前的SQL
INSERT INTO followers_lost SELECT * FROM followers WHERE pk = $pk
我試圖設置ID = NULL和值(0),但都不起作用。
如何插入SQL行到一個新的表,其中符合標準,但重置id的值。換句話說,複製行,但重置id值。空值的SQL插入的ID
這是我當前的SQL
INSERT INTO followers_lost SELECT * FROM followers WHERE pk = $pk
我試圖設置ID = NULL和值(0),但都不起作用。
所有你需要做的,因爲你想要的所有列,除了身份是指定所有非標識列上插入:
INSERT INTO [followers_lost] ([Column1],[column2]...{but not the identity
column})
SELECT [Column1],[column2]...{but not the identity column} FROM followers WHERE
pk = $pk
最好的,這個工作! – Daniil
您可以創建列,然後更新:基於您的評論
SET @new_id=0;
UPDATE your_table
SET id = @new_id := @new_id + 1
where id = 0
OK,我認爲你是試圖從追隨者全部或部分字段除了PK,並把它們放到Followers_Lost哪裏他們等於一定的PK。如果你想多PK的你需要的where子句更改爲IN語句,而不是平等的,並相應地調整自己的價值觀。
CREATE TABLE dbo.UAT_Followers_Lost (PK INT IDENTITY(1,1),DATA VARCHAR(50))
CREATE TABLE dbo.UAT_Followers (PK INT IDENTITY(1,1),DATA VARCHAR(50))
INSERT INTO dbo.UAT_Followers
(DATA)
SELECT 'Jan'
UNION ALL
SELECT 'Feb'
UNION ALL
SELECT 'Mar'
DECLARE @PK INT
SET @PK = 1
INSERT INTO dbo.UAT_Followers_Lost
(Data)
SELECT Data
FROM dbo.UAT_Followers
WHERE PK = @PK
我試圖從一個表列移至另一個而不復制ID條目。 – Daniil
到你正在嘗試做的關鍵是,必須限定所有你想要插入到你的表,並確保你有資格在SELECT語句中那些相同的字段在你的領域將數據的字段。 –
這是否解決了您的問題? –
通過ID,你的意思是標識列?你想要一個具有新身份值的新行嗎?你能提供表格的模式嗎? – JBdev
@JBdev我試圖從一個表列移至另一個而不復制ID條目。是的,它是標識列 – Daniil