小编Tom*_*Tom的帖子

自定义 ID 编号 - 插入的快速方法?

首先:这是用于序列化的 ETL 存储过程,因此并行性无关紧要。

我需要在加载期间为标记分配自定义 ID 号。我不能使用身份字段,因为 ID 号是唯一的“桶号” - 本质上是另一个编号字段。

我目前使用以下代码:

DECLARE @idRunner smallint
SELECT @idRunner = ISNULL(MAX([Id]),0)
    FROM sim.[Variable]
    WHERE [BucketRef] = @simBucketNo

DECLARE variable_cursor CURSOR FOR
    SELECT DISTINCT p.[Variable]
        FROM simstg.[Parameter] p
        LEFT OUTER JOIN sim.[Variable] v ON (p.[Variable] = v.[Code])
        WHERE p.[BucketRef] = @stgBucketNo
            AND v.BucketRef = @simBucketNo
            AND v.Code IS NULL
OPEN variable_cursor
DECLARE @variable VARCHAR(64)

FETCH NEXT FROM variable_cursor INTO @variable
WHILE @@FETCH_STATUS = 0
BEGIN
    SET @idRunner = @idRunner + 1
    INSERT INTO sim.[Variable] …
Run Code Online (Sandbox Code Playgroud)

sql-server t-sql sql-server-2014

5
推荐指数
1
解决办法
615
查看次数

标签 统计

sql-server ×1

sql-server-2014 ×1

t-sql ×1