我知道 Azure SQL 数据仓库不支持 IDENTITY,但是是否有另一种方法可以以相同的方式在插入时自动将 INT 值分配给列?
问问题
900 次
1 回答
3
您可以做的是从表中获取 Max RowId 开始,然后在源代码的 select 语句中使用 row_number() 语句生成行号,然后只需将 MaxRowId 添加到 row_number 以创建 RowId 的连续系列,
DECLARE @MaxRowId int
SET @MaxRowId = (SELECT ISNULL(MAX(RowId),0) FROM dbo.MyTable)
INSERT INTO MyTable (RowId, col1, col2)
SELECT
ROW_NUMBER() OVER(ORDER BY [col1]) + @MaxRowId RowId
, [col1]
, [col2]
FROM dbo.MySourceTable
于 2016-09-14T17:45:52.447 回答