我有一個具有這種結構的表:
ID Version Content
-------------------------------------------------------
1 1 sometext
1 2 anothertext
1 3 someverydifferenttext
所以所有行都有相同的 ID 但不同的版本。我想復制這些行(插入陳述句)并將 Version-Column 增加到下一個空閑數字。
預期結果:
ID Version Content
-------------------------------------------------------
1 1 sometext
1 2 anothertext
1 3 someverydifferenttext
1 4 sometext
1 5 anothertext
1 6 someverydifferenttext
有沒有辦法在單個 Select-Insert 陳述句中做到這一點?
我試過...
Insert Into MyTable
SELECT ID
, MAX([Version])OVER(PARTITION BY ID ORDER BY [Version] DESC) 1
,Content
FROM MyTable
但這不起作用,因為 MAX() 必須在每次插入一行后再次評估。我目前看到的唯一選擇是回圈。
我使用 T-SQL。
uj5u.com熱心網友回復:
ROW_NUMBER似乎您可以使用 windowed來實作這一點MAX:
INSERT INTO dbo.YourTable
SELECT ID,
ROW_NUMBER() OVER (ORDER BY Version) MAX(Version) OVER () AS Version,
Content
FROM dbo.YourTable WITH (UPDLOCK, HOLDLOCK);
db<>小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/454747.html
上一篇:如何設定運行日期
